2011-06-27 58 views
2

我使用管道在進程之間進行通信。當我寫入管道,並且讀取速度比寫入速度慢時,會寫入()阻塞,直到原子寫入管道爲止。C++管道:是否等待寫入

回答

1

是的,至少如果寫入的字節數小於保證爲原子的數量。

1

write()不需要寫入所有傳遞的數據 - 它可以寫得更少,你必須檢查實際寫入的數量。

1

符合POSIX標準的系統應該阻塞。

從寫(2)手冊頁:

「POSIX要求,讀(2),它可以證明一個寫之後發生()返回返回新的數據請注意,並非所有的文件系統 。符合POSIX標準「