1
首先,對不起,如果使用不好的英語。管道消費者/生產者:誰應該是消費者/生產者的父/子後叉
在我的筆記中,我寫過這個子進程通常是製作者,但我不明白爲什麼。 在fork()調用之後,消費者和生產者是誰? 問題是:如果子進程是生產者,他會在父進程完成之前完成,這意味着子進程成爲殭屍進程。
首先,對不起,如果使用不好的英語。管道消費者/生產者:誰應該是消費者/生產者的父/子後叉
在我的筆記中,我寫過這個子進程通常是製作者,但我不明白爲什麼。 在fork()調用之後,消費者和生產者是誰? 問題是:如果子進程是生產者,他會在父進程完成之前完成,這意味着子進程成爲殭屍進程。
沒關係。這兩者中的任何一個都可以是生產者或消費者,這取決於您想要解決的偏好或任務。
誰先結束通常是不相關的,因爲生產者和消費者都會在管道的另一端關閉時收到通知。
默認情況下,通知將通過信號SIGPIPE
發送,從而終止您的過程。如果您選擇忽略SIGPIPE
,則功能read
和write
將以EPIPE
失敗。
但它是父母將負責收穫。
您可以在man 7 pipe
瞭解更多:https://linux.die.net/man/7/pipe