这是我的问题fork()
以及wait()
将要发生的问题:
在 mymain()
中,我调用了一个函数,假设function()
它使用fork()
系统调用,但我想function()
返回而不等待孩子终止,因此main()
必须在终止之前等待它们。
那么,是否可以main()
调用已在另一个名为 my this 的函数的主体中编辑的wait()
孩子?fork()
main()
如果是,我是否必须main()
通过变量将孩子的 pid 传递给?
如果我正确地回答了这个问题,你想要这样的东西:
main
来电function
function
调用fork
创建子/人,并在父进程中返回main
后来拜访wait
孩子/ren这很好......名义上,您不必将孩子(ren)的PID(s)传回main
,因为您可以调用wait
来获取恰好存在的任何子进程;但是,要使用waitid
or waitpid
,您需要/想要将它们备份到main
. 您可以将 PID 返回到main
链接列表或以 NULL 结尾的数组之类的结构中,或者创建某种文件范围或全局变量来包含列表。
Linux手册页中有一个很好的细分wait(2)
(man 2 wait
或左右)
是的,main 可以等待在子功能中分叉的孩子。wait() 等待任何子进程终止。
您仍然希望将 fork() 的返回值传递给 main 函数,因为您需要它来决定您是子进程还是父进程。