C/C++では、dup2(...、STDERR_FILENO)[1]経由でサブプロセスからstdoutを読み込みます。私は本当にdup2が何をしているのか理解していません。同じ時間に実行されている2つのサブプロセスに対して2回実行できますか?私はSTDERRを読み終えることができない既存の実装に関する問題を見ています。実装バグか、それが不可能かどうかは疑問です。2つのサブプロセスのstdoutをリダイレクトできますか?
編集:別のスレッドによって開始されます。開始および停止は、いかなる方法でもインターリーブすることができる。
[1] like Linux 3.0: Executing child process with piped stdin/stdout
したがって、両方のプロセスが同じファイル記述子に書き込みますか?親がどのようなプロセスからデータが得られるのかを教えてください。 –
@JohandeVriesの場合、子プロセスのIDを表示しない限り、どのプロセスがそれを書き込んでいるかを知る方法はありません。 –
フォローアップの質問:http://stackoverflow.com/questions/42117551/race-condition-in-starting-up-sub-processes-causes-reading-from-pipe-to-hang –