質問

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

出来ますか?

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

役に立ちましたか?

解決

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

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

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

他のヒント

ファイルをディスクに単に書き込むのはなぜですか?ディスクへの書き込みが遅すぎると、 FILE_ATTRIBUTE_TEMPORARY フラグに createfile データをキャッシュに保持する(そして物理デバイスに書き込みを避けないでください)。

時々、明らかな解決策が最高です...

オペレーティングシステム(Unixoid Systems and Windowsが行う)でサポートされている場合、使用しようとすることができます メモリマップされたファイル.

pipe()を使用できます

The pipe() function shall create a pipe and place two file descriptors,
one each into the arguments fildes[0] and fildes[1], that refer to  the
open  file  descriptions for the read and write ends of the pipe. Their
integer values shall be the two lowest available at  the  time  of  the
pipe() call. The O_NONBLOCK and FD_CLOEXEC flags shall be clear on both
file descriptors. (The fcntl() function can be used to set  both  these
flags.)

はい、それは可能です。データを他のアプリケーションに転送できます インタープロセス通信 機構:

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

編集:MSDNは、Windowsで利用可能なすべてのIPCメカニズムをリストします ここ.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top