ifstreamを使用して名前付きパイプを開き、最終的にデータが書き込まれるようにしようとしています。
std::cout << "Opening " << name << std::endl;
std::ifstream manual_shutdown_file(name.c_str());
std::cout << "Opened " << name << std::endl;
プログラムを実行すると、ifstream
コンストラクターでブロックされます。コンソールに「Openingname」が印刷されていますが、openedステートメントが表示されません。
パイプに接続していることを知っています。
$ echo foo > name
シェルから、コンストラクターが戻り、Openedステートメントが出力されます。すぐに読みたくない場合でも、データが含まれるまでパイプを開く方法はありませんか?