我使用管道在进程之间进行通信。当我写一个管道,并且我读得比我写的慢时,会写()阻塞,直到原子写入管道为止?
答案 0 :(得分:1)
是的,至少如果写入的字节数小于保证为原子的数字。
答案 1 :(得分:1)
write()
不需要写入所有传递的数据 - 它可以写得更少,你必须检查实际写入了多少。
答案 2 :(得分:1)
POSIX符合系统应该阻止。
来自write(2)联机帮助页:
“POSIX要求在write()返回后可以证明发生的read(2)返回新数据。请注意,并非所有文件系统 是POSIX符合“