同步父和子以从没有信号量的文件中读取

时间:2016-09-11 23:16:48

标签: c++ linux process pipe fork

在管道中
(0)如果孩子尚未阅读,如何防止父母覆盖数据 儿童流程
(1)孩子如何知道管道中的新数据已经到达并且应该被阅读
(2)孩子怎么会知道它没有从管道重新读取同一条线
(3)读取父项从管道发送的所有数据后,子项的终止条件是什么。

1 个答案:

答案 0 :(得分:0)

在管道中 (0)如果孩子还没有读过数据,如何防止父母覆盖数据 在子进程中答案:在管道中,发件人可以覆盖数据,在这种情况下,我使用Sleep来阻止父进行,同时子进程读取父进程发送的数据
(1)孩子如何知道管道中的新数据已经到达并且应该被阅读答案:儿童/接收者将会知道"当新数据到达时,在此之前不会收集数据
(2)孩子如何知道它没有重新读取管道中的同一行答案:自动发生,读取()从不读取数据(已读取)AGAIN
(3)读取父管从管道发送的所有数据后,孩子的终止条件是什么。
答案:read()在EOF上返回0
感谢Kaylum的帮助 (在评论中)