我有一个父进程,其中有两个子进程从中分叉。我创建了两个管道(每个孩子一个)。对于每个管道,我已经关闭了父级的写入端和子级的读取端。
我遇到的问题是让父级同时从每个子管道中读取。它似乎只是从我尝试读取的第一个管道中读取。
//PARENT
while(1)
{
read(fd[0], buffer, sizeof(buffer));
//print out buffer
read(fd2[0], buffer2, sizeof(buffer2));
//print out buffer2
}
唯一打印的是我第一次阅读电话的信息。我得出的结论是 read 似乎阻止了其他读取。我在网上查看并在 select 中找到了一个可能的解决方案,但无法弄清楚如何用管道实现它(似乎在任何地方都没有任何示例)。
有人可以解释 select 如何与管道一起工作或通知我任何其他可能的问题解决方案吗?