2011-06-27 64 views
2

我使用管道在进程之间进行通信。当我写入管道,并且读取速度比写入速度慢时,会写入()阻塞,直到原子写入管道为止。C++管道:是否等待写入

回答

1

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

1

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

1

符合POSIX标准的系统应该阻塞。

从写(2)手册页:

“POSIX要求,读(2),它可以证明一个写之后发生()返回返回新的数据请注意,并非所有的文件系统 。符合POSIX标准“