[英]Multiple fork()'s. How does main know pid?
我正在編寫一個C語言程序,該程序創建#個孩子,讓他們執行一項任務,並將結果報告給主要對象。 寫入管道后,他們必須等待另一個請求。
我在使用管道的一個方向上進行了通信,但是我無法知道數據從何而來(或者更好地是從誰那里來的)。
如果無法知道哪個孩子在管道上寫了,是否有任何方法可以知道孩子在父母中的PID?
編輯我有一個包含所有子代PID的數組,但是在讀取管道時,我無法知道數據來自何處。
謝謝!
為每個孩子創建一個管道,然后使用select
或poll
收聽所有孩子。
就像Zack所說的那樣(每個孩子一個管道),或者更改協議,使孩子報告其pid作為消息的一部分。
fork()將子進程的pid返回父進程,將0返回給子進程,您可以將它們存儲在數組或鏈接列表中以跟蹤它們
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.