[apue] 多進程管道讀寫的一些疑問

對於一對一的pipe:git

1) 寫進程關閉寫管道後,讀進程繼續讀管道會致使read返回0;github

2) 讀進程關閉讀管道後,寫進程繼續寫管道會激發SIGPIPE信號,若捕獲,則write返回-1;測試

而對於多對一的pipe:進程

1)多個寫進程關閉寫管道後,讀進程繼續讀管道會致使read返回0;(同上)ip

2)多個讀進程關閉讀管道後,寫進程繼續寫管道並不會激發SIGPIPE信號,而是寫成功返回。(沒有試大量數據,少許數據是這樣)get

疑問:it

多個進程和一個進程共享管道在內核有何異同,爲何表現會不同?pip

 

測試代碼 ast

相關文章
相關標籤/搜索