2 つの子プロセスがフォークされた親プロセスがあります。2 つのパイプ (子ごとに 1 つ) を作成しました。パイプごとに、親の書き込み側と子の読み取り側を閉じました。
私が抱えている問題は、親が各子パイプから同時に読み取るようにすることです。私が読み込もうとしている最初のパイプからのみ読み取っているようです。
//PARENT
while(1)
{
read(fd[0], buffer, sizeof(buffer));
//print out buffer
read(fd2[0], buffer2, sizeof(buffer2));
//print out buffer2
}
印刷されるのは、最初の読み取り呼び出しからの情報だけです。read が他の read をブロックしているようだと結論付けました。私はオンラインで見て、selectで可能な解決策を見つけましたが、パイプでそれを実装する方法を理解できませんでした(どこにも例がないようです)。
select がパイプでどのように機能するかを誰かが説明したり、私の問題に対する他の可能な解決策を教えてくれませんか?