這是我在fork()
和各自wait()
將要發生的問題:UNIX進程:fork()和wait()的
在我main()
,我調用一個函數,讓我們說function()
使用該fork()
系統調用,但我希望function()
返回而不必等待孩子終止,因此main()
必須在終止之前等待它們。
那麼,main()
是否有可能在fork()
編輯過的另一個函數body中調用wait()
這個main()
?
如果是,是否必須通過變量將孩子的pid傳遞給main()
?
這是我在fork()
和各自wait()
將要發生的問題:UNIX進程:fork()和wait()的
在我main()
,我調用一個函數,讓我們說function()
使用該fork()
系統調用,但我希望function()
返回而不必等待孩子終止,因此main()
必須在終止之前等待它們。
那麼,main()
是否有可能在fork()
編輯過的另一個函數body中調用wait()
這個main()
?
如果是,是否必須通過變量將孩子的pid傳遞給main()
?
是的,主要可以等待子功能派生的孩子。 wait()等待任何孩子終止。
您仍然希望將fork()的返回值傳遞給main函數,因爲您將需要它來決定您是子進程還是父進程。
如果我正確地遵循了問題,你想有這樣的事情:
main
電話function
function
電話fork
創建子/仁,並返回在父進程main
後來致電wait
對子/ renThis很好...名義上,你不需要必須將子(PID)的PID傳回main
,因爲你可以直接調用wait
收穫碰巧存在的任何子進程;但是,要使用waitid
或waitpid
,您需要/希望將它們提供回main
。您可以將PID返回到main
的結構,如鏈接列表或NULL結尾的數組,或創建某種文件範圍或全局變量來包含列表。
有在Linux手冊頁一個不錯的細目wait(2)
(man 2 wait
左右)