我有一个父进程,它有两个子进程fork掉。我创建了两个管道(每个孩子一个)。对于每个管道,我已经关闭了父节点的写入结束和子节点的读取结束。C - 从两个管道(两个子进程的父节点)同时读取?
我遇到的问题是让父母同时从每个子管道读取。它似乎只是从我尝试读取的第一个管道读取。
//PARENT
while(1)
{
read(fd[0], buffer, sizeof(buffer));
//print out buffer
read(fd2[0], buffer2, sizeof(buffer2));
//print out buffer2
}
打印的唯一信息是来自我第一次读取的电话的信息。我认为阅读似乎阻止了其他阅读。我在网上查找并找到了一个可能的解决方案,但无法弄清楚如何使用管道来实现它(似乎没有任何地方的例子)。
有人可以解释如何选择与管道工作或通知我的任何其他可能的解决方案,我的问题?
请阅读您的系统文档以选择。 ('人选')。许多精选的手册页都有很多实例。 –
你的大纲代码将同步阅读来自一个孩子和另一个孩子的消息。我相信'buffer2'与'buffer'的大小是一样的,因为你也使用'buffer'的大小来进行第二次读取。 –