2番目のプログラムによって読み取られる出力ファイルを以前に書き込んだ2番目の実行可能ファイルを呼び出すには、コード(LinuxではC ++)が必要です。ナイーブなアプローチはありますか、
std::ofstream out("myfile.txt");
// write output here
out.close();
system("secondprogram myfile.txt");
out.close()が実行されたとしても、ファイルをすぐに読み取ることができない潜在的な競合状態に悩まされていますsecondprogram
か?もしそうなら、これを解決するためのベストプラクティスは何ですか?
3つのメモ:
- これがファイルシステムに依存している場合、ext3とtmpfsでの動作に興味があります。
- 明らかに、2番目のプログラムがファイルを開くことができない理由は他にもあります(ファイルのアクセス許可など)。競合状態の可能性に興味があります。
- 上記の例でハードコードされたファイル名は、簡単にするためのものです。実際には私は使用します
mkstemp
。