そのため、プログラム (RAM) に一時データがいくつかあります。どうにかしてファイルのように見せたいです (たとえば、ファイル リンクを引数として受け取る別のプログラムに送信するため)。
出来ますか?
そのようなことをする方法は?
ファイルを単にディスクに書き込んでみませんか? ディスクへの書き込みが遅すぎる場合は、FILE_ATTRIBUTE_TEMPORARY
フラグをCreateFileに渡して、データをキャッシュに保持できます (物理デバイスへの書き込みを回避できます)。
明白な解決策が最善の場合もあります...
お使いのオペレーティング システムでサポートされている場合 (Unixoid システムと Windows がサポートしている場合)、メモリ マップト ファイルの使用を試みることができます。
関数を使用してCで行うことができますpopen()
:
FILE *f = popen("program args", "w");
// write your output to f here using stdio
pclose(f);
これは、外部プログラムが から入力を読み取る場合に可能ですstdin
。
pipe() を使用できます
pipe() 関数は、パイプを作成し、2 つのファイル記述子を配置します。 を参照する引数 fildes[0] と fildes[1] にそれぞれ 1 つ パイプの読み取り側と書き込み側のファイル記述を開きます。彼らの 整数値は、 pipe() 呼び出し。O_NONBLOCK および FD_CLOEXEC フラグは両方でクリアされなければならない ファイル記述子。(fcntl() 関数を使用して、これらの両方を設定できます。 フラグ。)