2014-03-05 73 views
0

選擇等待()函數應爲 終止子進程的一個暫停調用線程 的執行,直到狀態信息調用進程可用的線程信息如何等待函數知道從

假設父進程有許多子進程,該子進程並在wait功能選擇獲得狀態信息???它是終止的第一個子進程嗎?

這是否意味着等待()函數將獲得第1子進程終止後調用線程的執行將繼續,雖然其他子進程可能仍在運行狀態信息?

有人建議可以給我一個更好的標題這個問題上的調用程序(父)的

回答

1

wait塊執行。它將處理來自死亡的第一個孩子的信息。這孩子可能有已經去世前wait被調用,在這種情況下wait將與孩子的信息立即返回。在wait返回後,程序可以繼續執行其他操作,包括再次調用wait(例如在循環中)以收穫未來的死亡孩子。

你也可以使用waitpid,它允許你等待一個特定的孩子,並有其他幾個選項,其中包括NOHANG,它允許你在沒有阻塞的情況下輪詢死去的孩子,從而允許父母在此期間做其他事情。