Pipe,Fifo,read()和write()函数

时间:2014-09-04 19:44:15

标签: c linux kernel

我刚学习管道,fifo,我有一个问题。

如果一个程序打开一个管道进行读取而另一个程序打开一个用于写入的管道,会发生什么。这两个程序以并行方式运行。让我们说第一个程序尝试读取表单管道,但没有信息,所以它会阻塞,直到第二个程序写入内容。

在第二步中,第一个程序更快,并尝试再次读取表格管道。这次有一些来自上次的信息。该计划的作用是什么?它是否从上次读取信息?

谢谢!

2 个答案:

答案 0 :(得分:2)

如果我正确地解释了您的问题,答案是否定的。第一次读取读取的任何信息都将被消耗,并且管道中不再可用。如果没有进一步写入管道,第二次读取将被阻止。

答案 1 :(得分:1)

是的,从管道读取的程序将按照其他程序编写的顺序读取顺序中的所有内容,但不一定是相同的块大小。如果有可用的东西,它会读取它(或者它的大部分都适合读取缓冲区)。

相关问题