这是我关于 fork()
以及将要发生的相应 wait()
的问题:
在我的 main()
中,我调用了一个函数,比如说使用 fork()
系统调用的 function()
,但是我希望 function() 返回而不等待子进程终止,因此 main() 必须在终止之前等待它们。
那么,main()
是否可以对已在主体中fork()
ed的子进程调用wait()
另一个名为我的 this main()
的函数?
如果是,我是否必须通过变量将子进程的 pid 传递给 main()
?
最佳答案
如果我正确地理解了这个问题,你会想要这样的东西:
main
调用function
function
调用fork
创建child/ren,并在父进程中返回main
稍后在 child/ren 上调用wait
这很好…名义上,您不必必须将子进程的 PID 传递回 main
,因为您只需调用wait
获取任何恰好存在的子进程;但是,要使用 waitid
或 waitpid
,您需要/想要将它们提供给 main
。您可以将 PID 返回到链表或 NULL 终止数组等结构中的 main
,或者创建某种文件范围或全局变量来包含该列表。
Linux 手册页中有关于 wait(2)
的详细说明(man 2 wait
左右)
关于UNIX 进程 : fork() and wait(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8854801/