[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/26 14:12 / Filesize : 314 KB / Number-of Response : 1035
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 148



1 名前:デフォルトの名無しさん [2018/09/19(水) 17:56:50.83 ID:XSTNMnDwa.net]
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
codepad.org/

C11
www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

※前スレ
C言語なら俺に聞け 147
mevius.5ch.net/test/read.cgi/tech/1534430162/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

411 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 10:24:36.39 ID:RVKB6eOl0.net]
>>398
- という語句は予約されていると言いたいのか?

412 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 13:21:05.27 ID:TLhVFQk50.net]
somecmdというアプリケーションがあったとして
Usage: somecmd [--option] <file>...
こういう出力を
printf("Usage: %s [--option] <file>...\n", argv[0]);
まあこういう感じ(もうちょっと変数やらをはさむかも知れんが)で出力するときに
argv[0]がsomecmdじゃない場合がけっこうあるってことじゃないの?
そしてそういう場合にUsage: ...の形式が壊れるんじゃないか,と。

413 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 13:22:39.05 ID:X1M2oU/e0.net]
>>400
結構あるって、例えばどういう操作をする場合だろうか?

414 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 13:23:29.81 ID:TLhVFQk50.net]
しかし俺が思うのは,そういう場合にはたして--helpを参照するかな。
argv[0]!="somecmd"の場合ってmain関数を他のプログラムから呼び出すとかそういう場合でしょ。
その時は,そのプログラムのUsage: ...が欲しい訳だから結局somecmdのUsage: ...なんて出力する必要ないでしょ。

415 名前:デフォルトの名無しさん [2018/09/28(金) 13:24:49.39 ID:6mi1IA73a.net]
>>399
え?もしや - というコマンド作った場合の話?

そういうことではなくて argv[0] は起動する側が自由になんでもセットできるからコマンド名になってる保証はないという話だよ。
まあ普通のシェルから起動する場合には大丈夫だろうけど、環境によっては何も入ってないかも知れないし保証はできない。

416 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 13:33:55.41 ID:X1M2oU/e0.net]
何でもセットできる場合って、
そういう環境では0に限らず、
argv配列を使えないって事だよね

417 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 13:38:19.13 ID:s+4Nw5Rza.net]
busyboxってargv[0]で振り分けてんの?

418 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 13:55:27.31 ID:25C/+Q0qM.net]
>>403
そんな変な環境使ったことないからどうでもいいや

419 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 14:22:34.06 ID:X1M2oU/e0.net]
> 二つの仮引数を定義する場合,関数 main の仮引数は,次の制約に従わなければならない。
>- argc の値は,非負でなければならない。
>- argv[argc]は,空ポインタでなければならない。
>(中略)
>- argc の値が正の場合,argv[0] が指す文字列は,プログラム名(program name)を表す。
> ホスト環境からプログラム名を得ることができない場合,argv[0][0] は,ナル文字でなければ
> ならない。
JIS X3010:2003 5.1.2.2.1

だそうです。



420 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 16:10:35.86 ID:mp2jkAzV0.net]
argv[0] にはパスも含まれ得るし、シンボリックリンクから起動されれば実体の名前ではなくなるけど、usage にコマンド名としてコマンドライン上のコマンドパスを表示したいの?

421 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 17:12:54.15 ID:08RUBfsA0.net]
呼ばれた名前でusageわざわざ変えてるコマンド見たことないな
せいぜい例示コマンドが呼ばれた名前に変わってるくらい

422 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 17:16:02.91 ID:08RUBfsA0.net]
       ゴガギーン
             ドッカン
         m    ドッカン
  =====) ))         ☆
      ∧_∧ | |         /          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (   )| |_____    ∧_∧   <  おらっ!出てこい>>383
     「 ⌒ ̄ |   |    ||   (´Д` )    \___________
     |   /  ̄   |    |/    「    \
     |   | |    |    ||    ||   /\\
     |    | |    |    |  へ//|  |  | |
     |    | |    ロ|ロ   |/,へ \|  |  | |
     | ∧ | |    |    |/  \  / ( )
     | | | |〈    |    |     | |
     / / / / |  /  |    〈|     | |
    / /  / / |    |    ||      | |
   / / / / =-----=--------     | |


423 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 18:30:23.06 ID:mFoW6O3i0.net]
実行ファイルをリネームしてもusageが使えるとか
シンボリックリンクで別名作っても大丈夫とか

424 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 18:42:59.76 ID:6WLCN0vmp.net]
>>410
https://i.imgur.com/wgOfjjh.jpg
https://i.imgur.com/FL413Fu.jpg

課題で忙しくて、返信できませんでした。半泣きになりながらやってました。
本当にすみません。今からやってみますね。

425 名前:デフォルトの名無しさん [2018/09/28(金) 18:46:59.61 ID:a9B9WfnIa.net]
>>410
きっとシベリア鉄道に乗っていてまだ家に着いていないのだろう。

426 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 18:52:40.13 ID:s+4Nw5Rza.net]
>>412
きったねえソースだな

427 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 18:59:04.08 ID:6WLCN0vmp.net]
https://i.imgur.com/Yc7Gep8.jpg

画面が汚くて申し訳ございません。
gccコマンドで実行ファイルをその都度作成しなかったのが原因でした。

428 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 19:00:30.32 ID:6WLCN0vmp.net]
>>414
具体的にどこが汚いですか?

429 名前:デフォルトの名無しさん [2018/09/28(金) 19:05:03.12 ID:a9B9WfnIa.net]
>>411
UNIX系OSでは compress, gzip, bzip2, xz とかの圧縮コマンドが自分が何のコマンドで動かされたかによって動作変えてるね。
同じ実行形式のバイナリを例えば gzip なら gunzip にリンクしておいてそれを実行すると gzip -d と同じ動きになる。



430 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 19:06:09.19 ID:mFoW6O3i0.net]
>>416
本気にしなくて良いぞ

431 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 19:07:43.61 ID:s+4Nw5Rza.net]
>>416
まるでCみたいだ

432 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 19:11:08.13 ID:6WLCN0vmp.net]
>>419
c言語をずっと使ってきたので、その名残があるかもしれません...

433 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 19:16:14.15 ID:/54mTdmW0.net]
ずっと使ってきたのならなんで素人レベルのミスしてるのw

434 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 19:19:45.55 ID:6WLCN0vmp.net]
>>421
コマンドプロンプトの環境が初めてだったからです。

435 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 19:20:23.68 ID:08RUBfsA0.net]
>>415
まあ初学者あるあるだなw
俺にも覚えがある

俺の予想が的中(>>386)ということで今日から俺が半角ニキやで

436 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 19:27:09.29 ID:6WLCN0vmp.net]
>>423
ありがとうございます!

437 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:52:19.80 ID:voc6Rn8M0.net]
256倍本に同じような話があったな

438 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 22:11:42.42 ID:S1GcH4lv0.net]
>>403
gccとg++とか、grepとegrepとかあるやん
人間だって「陛下

439 名前:vと呼ばれたか「クズ」と呼ばれたかで同一人物でも行動ちがうだろ []
[ここ壊れてます]



440 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 23:19:48.69 ID:iWGXqAI10.net]
>>415
いいフォントだな〜

441 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 23:58:56.90 ID:TLhVFQk50.net]
Vimを使うんなら
:syntax enable
くらいしろ

442 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 01:10:11.80 ID:0yVwVmRZM.net]
viewなんじゃねーの
カリカリすんなよ
Macじゃどうか知らんがワイのvimrcはターミナルがカラー対応してれば勝手にsyntax on て書いてるで

443 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 17:41:22.99 ID:XiPCev9Z0.net]
Cってファイル毎のstaticが多くね? カプセル化だと思うが、それとか、do {} while(0)とか・・・
なして、そこまでしてCなんか使うんだべ?

444 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 17:48:39.58 ID:cLBgNyTBM.net]
自己満足に浸るため

445 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 17:52:30.71 ID:s4F/hYZia.net]
変数は少ない方がいいが、クラスのメンバー的なもんは仕方ないんじゃないか?どこかに書かないと。

446 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 19:04:51.98 ID:ZFQaS3Ne0.net]
基本情報のc言語ってどんくらいのレベルなの?今度受けようと思うんだけど

447 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 19:17:50.68 ID:oiqQJDSj0.net]
>>430
今現在Cを使う理由は、以下しかない。
1. 最速のコードが欲しい
2. 最小のコードが欲しい
3, 他言語では出来ないほど細かく指示したい
4. 既存のCプロジェクトの継続

てゆうかマジで理工系であらかじめCを使うと分かり切っている奴以外は、
初心者がCを選択する理由はないから止めとけ。
あと、ここでこれまでやってた「動く/動かない」レベルのやりとりは、
大学の授業の先生や同級生に聞いた方が圧倒的に早いからそうしろ。

448 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 19:20:43.09 ID:vBAQmIFc0.net]
>>434
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。

C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:

- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)

- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。

言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水

449 名前:準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
[]
[ここ壊れてます]



450 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 19:29:15.10 ID:PLQNiWP00.net]
>>434
ワンチップマイコンの組み込みソフトはC言語1択だけどな。
C言語は最低限のスキルとして習得しておくべき。

451 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 19:34:28.70 ID:oiqQJDSj0.net]
>>435
俺はLinusの意見には同意だぞ。
ただ、それはC++が糞だと言っているのであって、Cがいいと言っているわけではない。
そして、俺が初心者に勧めるのはLL言語だ。(Ruby/Python/JavaScript/(PHP))
これらにはインタプリタ環境がある。それだけで初心者には全然違う。

それ以前に、型等の恩恵を受けたいのならC#の方が断然良い。
というか、後発言語はC言語の駄目な点を改良してきているのだから当然いろいろ優れている。
C++もこれに含まれる。だからC++も『正しく使えば』いい言語だ。
当たり前だがほぼ上位互換な訳でね。


>>436
ああ、それなら、以下を付け加えておこう。
5. C以外の環境がない

452 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 19:48:34.77 ID:PPHj/b7C0.net]
#if 0
って今となっては不要だよね。
なぜならフレームワークを適当に設定することで開発用と製品用のコードを分離できるようになってるから
VCSでブランチ切ってもいいし。

453 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 20:04:11.39 ID:oiqQJDSj0.net]
>>438
つhttps://stackoverflow.com/questions/3630601/why-use-if-0-for-block-commenting-out/3631513
要するにブロックコメントをブロックでコメントアウトするのに便利、だそうな。
ルールでなら // に統一しろ、とか言われる所だな。

(VCSというか)今はGit全盛だが、勿論それらもなかった頃からCは全面的に使われていたので、
今となっては古い(原始的)と思える機能も沢山ある。
これは古い言語の宿命だからある程度致し方ない。
コーディングルールでも「あれは白黒ディスプレイの為の物」と言われているものあるだろ。

454 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 22:15:37.87 ID:UH1zl1PU0.net]
>>436
ワンチップマイコンだとアセンブラも有力

455 名前:デフォルトの名無しさん [2018/09/29(土) 22:38:18.17 ID:gtdSXLh90.net]
forthって組み込み系でもう使ってないの?

456 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 22:39:39.91 ID:s2JlOOSC0.net]
>>441
使いやすい言語だとは思わないけどな

457 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 23:11:41.46 ID:X4waiIaR0.net]
>>441
そもそも最近使われてるのを見たことない

>>442
処理系が軽いのよ

458 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 23:32:32.75 ID:ozlzkqfsa.net]
postscriptは割と使ってるかもな。知らんが。

459 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 00:28:39.07 ID:YvS5SBel0.net]
今をときめくpythonの大部分がCだろ
便利なimport含めて



460 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 00:51:11.84 ID:QRI6I66L0.net]
最近プログラミングに熱意が持てなくなってきた
だれかたすけて・・・

461 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 00:53:49.78 ID:mUWBdCHT0.net]
言語作ろうぜ
あるいはハード作ろうぜ

462 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 13:35:46.44 ID:8vGviIsrM.net]
ここのレベルじゃ無理

463 名前:デフォルトの名無しさん [2018/09/30(日) 19:56:21.83 ID:KPqVv5wd0.net]
とりあえず昔のC++みたいにC言語へのトランスレーターで作っとけよ。

464 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 20:08:07.13 ID:pfgCoU5B0.net]
昔々、とあるマクロ言語を開発してた頃はyacc/lex(bison/flex)を使ってたんだが、今どきもこういうコンパイラコンパイラを使ったりするんだろうか?

465 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 20:08:42.93 ID:PasHsNHY0.net]
>>441
ForthってMINDのベースって事くらいしか知らない

466 名前:デフォルトの名無しさん [2018/09/30(日) 20:25:52.96 ID:CSkWhxVk0.net]
sedとかで十分なことでもgoでパーサ使う人はいるな

467 名前:デフォルトの名無しさん [2018/09/30(日) 21:41:15.10 ID:ZDEBOTA70.net]
質問です。
ソースが公開されてないライブラリを使用していまして
その中に特殊なファイルを読み込む関数があります。
事情があってその特殊なファイルを暗号化して保存したいのですが
暗号化してしまうとそのライブラリの関数から直接読み込めません。
暗号を解除する関数を通してそれが一時ファイルを吐けば可能ですが
大量にあるので出来ればもっと良い方法があればそれを採用したいと思っています。
例えば暗号解除後そのままメモリをファイルの様に扱う等は出来ないでしょうか?
よろしくおねがいします。

468 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 21:50:14.42 ID:pfgCoU5B0.net]
>>453
OSが分かんないけどtmpfsとか駄目なの?

469 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 22:13:05.28 ID:vpsmo7Y3a.net]
read/writeを包んじゃうとか。LD_PRELOAD的な。
実行中のメモリが読めるならなんでもありという気もするが



470 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 22:17:19.98 ID:ZDEBOTA70.net]
>>454-455
さっそくありがとうございます!OSはWindowsです。
方法はありそうですね?
教えてもらったキーワードで自分でも少し調べてみます!

471 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 22:21:51.99 ID:6gTyS6vx0.net]
そのライブラリの特殊なファイルを読み込む関数のインターフェースはファイル名を求めているのだろうか?
それともファイルへのハンドルを求めているのだろうか?

前者と仮定してうまく凌ぐ方法はあんのかな? 名前付きマッピングオブジェクトかなんか?

472 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 22:25:01.08 ID:ZDEBOTA70.net]
>>457
ありがとうございます。ファイル名です。
OSはWin10です。

473 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 22:27:41.29 ID:ZDEBOTA70.net]
tmpfsはWinだと使えないのですね?残念です。これはまさに理想的だったので。
LD_PRELOADは関数を上書きできるのですね。こちら更に調べてみます。

474 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 00:45:26.18 ID:0BEK1cUt0.net]
どれもWindowsじゃ無理っぽいですね… tmpfsが使えれば一番よかったんですが。

475 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 03:15:04.29 ID:p5nbtFpra.net]
FILE*で文字を直接参照するのと一旦文字の配列にコピーして参照するのとでは速度差はありますか?

476 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 04:00:25.04 ID:2PPz6CoJ0.net]
コピーするのに、メモリ・時間を使うから、

コピーしない方が速い

477 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 05:28:57.52 ID:qsdLJDx40.net]
>>461
コピーせずに直接参照ってどうやるの?

478 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 05:37:04.66 ID:kFV2gm8E0.net]
>>460
WindowsでもRAMDiskは作れる(そういうツールがある)けど、エレガントな方法はファイル系のAPIをHookするって手もあるかな?

479 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 09:06:42.48 ID:Qvezncj/0.net]
>>412
これなんてエディタ? 秀丸?



480 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 09:25:37.38 ID:bI30HRk50.net]
Spyderだろ

481 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 09:27:43.52 ID:2PPz6CoJ0.net]
メモリファイルは無いの?

482 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 09:33:21.48 ID:UNHR2HPsx.net]
メモリマップトファイルが使えれば良いんだけど、バイナリ提供内部でファイル名で直接CreateFileしちゃってるなら難しいんじゃないかな?
俺が知らないだけでうまい方法があるかもだけど。

483 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 09:51:55.51 ID:7/sdPVVo0.net]
>>453
ちなみにどんなファイルを読むライブラリなの?
比較的単純なら自分で書き直す方が早いんじゃね?と思ったり。
sqlite みたいなのになってくると手に負えなそうだけど。

484 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 10:05:04.00 ID:5qQ+3kFva.net]
暗号化したボリュームに書き込みたいとかいう話ではないんだよな

485 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 12:02:16.95 ID:qsdLJDx40.net]
ファイルマッピングだって、結局はディスク上のファイルイメージをメモリにキャッシュするだけだぞ
ライトバックキャッシュなので「書き戻せ」というコマンドを自分では書かないから
何か特殊なもののように誤解されやすいが、
ハード的にCSやWEがチャネルコマンドに変換されるとかそういうことは一切ない

486 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 12:05:58.57 ID:AKKTs5+S0.net]
名前付パイプ渡してうまくいくといいなー ぐらい

487 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 12:18:15.13 ID:e2K2pEIVa.net]
パス名でしか読み込めないクソライブラリをありもので解決するならramdiskしかないな
ライブラリを修正できるなら俺だったら読み込み処理をコールバックにする

488 名前:459 mailto:sage [2018/10/01(月) 12:26:59.19 ID:0BEK1cUt0.net]
みなさんありがとうございます。むずかしそうですね…
ファイルの仕様も公開されてないので自分で描き直すのもむずかしいです…
理想的な流れとして以下のように出来ればいいのですがむずかしいのですかね…
1 暗号化したファイル読み込み
2 暗号解除
3 メモリに元ファイルとして生成
4 ファイル名を元ファイルを読み込む関数に渡してメモリ上のファイルを読み込む

489 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 12:28:50.21 ID:0BEK1cUt0.net]
>>473
ramdiskですか。ちょっとそちらで調べてみます。ありがとうございます。



490 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 12:47:38.04 ID:AKKTs5+S0.net]
ramdisk も中間ファイル書き出してその名前を渡すのとかわらんでしょ
いずれにしろ復号済みのファイルが実体化しちゃってる

491 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 12:57:10.39 ID:UNHR2HPsx.net]
>>474
難しいというか、技術的な実現方法はいくつか思いつくけど要件がよく分からないのでこれにすべきと言えないだけ。

492 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:02:33.93 ID:e2K2pEIVa.net]
>>475
面倒な手順だけど、fuse+ramfsってのもあるか
windowsにramfsがあるか知らんけど

493 名前:デフォルトの名無しさん [2018/10/01(月) 13:15:50.57 ID:yvyswmJaa.net]
>>474
RAMディスクなら速いだろうけど普通のファイルシステムとアクセス方法は同じだから普通にディスクにファイル作っても同じだよ。
そのディスクがSSDならば正にRAMディスクだしな(ちょっと遅いかも知れないが)。

そのファイルは本当にRAMディスクのような高速アクセスできるようなファイルシステム上に作らねばならないものなのか?

494 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:19:01.59 ID:0BEK1cUt0.net]
>>476-478
みなさんありがとうございます。
要件としては元のファイル自体が公開されているライブラリで読み込めてしまうのでそれを防止したいんです。
ようは簡単に読み込めなく出来ればいいだけなんですね。
>>474でも一応メモリ内に復号後のものが実体化されちゃいますがとりあえずこれが出来ればいいかなと。
もう少し自分でも色々調べてみます。

495 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:21:27.31 ID:AKKTs5+S0.net]
>>480
メモリ内だけじゃなくエクスプローラから丸みえだし、ファイルも普通に読み書きできるよ? <ramdisk

496 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:24:04.57 ID:0BEK1cUt0.net]
>>479
なんというか単に目に見えるところに作りたくないというだけなんですね。
原理的には読めちゃうんだと思いますがとりあえず素で通常のディスクに書き出すよりは少しはマシかなと。

497 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:25:19.86 ID:0BEK1cUt0.net]
>>481
ramdiskはそうなんですね… それだとマズイなあ…
やっぱり見えない形で展開できればいいんですが。

498 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:30:03.85 ID:UNHR2HPsx.net]
RAMDiskをNTFSでフォーマットして適切なPermission管理すれば良いんじゃね?

499 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 13:40:12.23 ID:0BEK1cUt0.net]
あとRAMDiskについては使用者のPCに勝手にそういう領域を作っても問題ないのかも気になりました。
アプリが終了すれば常に確実に領域がクリアされ解放されればいいんですが何かのアクシデントで残ってしまわないかとか。
もうちょっと自分でも色々考えてみます。



500 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 14:13:49.93 ID:2kmJAioya.net]
隠蔽か

501 名前:ツ高揮発?を実現したいということならいろいろありそう。
windowsのfuseって昔あったよな。
[]
[ここ壊れてます]

502 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 14:51:25.74 ID:tOl4q5VhM.net]
Windows詳しいマンはおらんのか

503 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 14:56:04.14 ID:n3AkgheKM.net]
だからAPI Hookだって。

504 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 17:27:27.14 ID:sRgrdSMiM.net]
すでに出てるけど、名前付きパイプかファイルマッピングオブジェクトじゃいかんのか

505 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 17:41:52.83 ID:qsdLJDx40.net]
Windowsの話してやってんのに通じないやつが何か文句言ってらあ

506 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 19:43:43.06 ID:3ZN7cetya.net]
パス名経由でしか読み込めないんだからありもので対処するならOS経由の手段に限られる
クソライブラリに手を加えられないなら自作するかramdiskで我慢するしかないよ

507 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 20:18:05.62 ID:xRBX1/Y3M.net]
もちろんwindowsの話なんだけどな

508 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 20:50:02.06 ID:73T+9RSN0.net]
>>488 狙うとすれば ReadFile あたりだろうけど、あまりに根っこ過ぎて
ちゃんと狙い撃ちしたい箇所だけに限定できるのか正直わからんところ

509 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 21:43:55.95 ID:n3AkgheKM.net]
>>493
狙うならCreateFileだと考えてた。
予めメモリマツプトファイルに復号化しておいてそのハンドル返せば、後はReadFileはHookしなくても煮るなり焼くなり好きにしてもらったら良いと。



510 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 21:58:38.38 ID:2kmJAioya.net]
dropboxとか具体的にどういう技術なん?

511 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 22:54:48.81 ID:2yHgzixG0.net]
APIHookかVFSを自分で実装するかになるんじゃね
前者の方が簡単そうだな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<314KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef