c ++管道:它在写入时等待

时间:2011-06-27 11:06:04

标签: unix pipe

我使用管道在进程之间进行通信。当我写一个管道,并且我读得比我写的慢时,会写()阻塞,直到原子写入管道为止?

3 个答案:

答案 0 :(得分:1)

是的,至少如果写入的字节数小于保证为原子的数字。

答案 1 :(得分:1)

write()不需要写入所有传递的数据 - 它可以写得更少,你必须检查实际写入了多少。

答案 2 :(得分:1)

POSIX符合系统应该阻止。

来自write(2)联机帮助页:

“POSIX要求在write()返回后可以证明发生的read(2)返回新数据。请注意,并非所有文件系统        是POSIX符合“