7

そのため、プログラム (RAM) に一時データがいくつかあります。どうにかしてファイルのように見せたいです (たとえば、ファイル リンクを引数として受け取る別のプログラムに送信するため)。

出来ますか?

そのようなことをする方法は?

4

5 に答える 5

17

ファイルを単にディスクに書き込んでみませんか? ディスクへの書き込みが遅すぎる場合は、FILE_ATTRIBUTE_TEMPORARYフラグをCreateFileに渡して、データをキャッシュに保持できます (物理デバイスへの書き込みを回避できます)。

明白な解決策が最善の場合もあります...

于 2010-05-30T23:23:00.737 に答える
11

お使いのオペレーティング システムでサポートされている場合 (Unixoid システムと Windows がサポートしている場合)、メモリ マップト ファイルの使用を試みることができます。

于 2010-05-30T23:04:00.697 に答える
1

関数を使用してCで行うことができますpopen()

FILE *f = popen("program args", "w");
// write your output to f here using stdio
pclose(f);

これは、外部プログラムが から入力を読み取る場合に可能ですstdin

于 2010-05-30T23:03:14.020 に答える
0

pipe() を使用できます

pipe() 関数は、パイプを作成し、2 つのファイル記述子を配置します。
を参照する引数 fildes[0] と fildes[1] にそれぞれ 1 つ
パイプの読み取り側と書き込み側のファイル記述を開きます。彼らの
整数値は、
pipe() 呼び出し。O_NONBLOCK および FD_CLOEXEC フラグは両方でクリアされなければならない
ファイル記述子。(fcntl() 関数を使用して、これらの両方を設定できます。
フラグ。)
于 2010-05-30T23:02:40.370 に答える
0

はい、可能です。プロセス間通信メカニズムを介して、データを他のアプリケーションに転送できます。

  1. OS に応じて、ここにはさまざまなオプションがあります。多くのOSにはパイプがあるため、他のポスターがここで言及しているように、パイプを作成できます。
  2. 共有メモリを使用することもできます。
  3. ファイルに書き出すだけで、他のアプリケーションでそのファイルを開くことができます。
  4. 多くの OS には、使用できる他の手法があります。

編集: MSDN には、Windows で利用可能なすべての IPC メカニズムが一覧表示されています

于 2010-05-30T23:03:41.227 に答える