UNIX进程:fork()和wait()
这是我关于UNIX进程:fork()和wait(),unix,fork,wait,waitpid,Unix,Fork,Wait,Waitpid,这是我关于fork()和将发生的相应wait()的问题: 在我的main() 因此,main()是否可以对另一个名为my thismain()的函数体中的子函数调用wait() 如果是,是否必须通过变量将子pid传递给main()?是,main可以等待子函数分叉的子函数。wait()等待任何子级终止 您仍然需要将fork()的返回值传递给main函数,因为您需要它来决定您是子进程还是父进程。如果我正确地回答了这个问题,您需要这样的内容: main调用function function调用for
fork()
和将发生的相应wait()
的问题:
在我的main()
因此,main()
是否可以对另一个名为my thismain()
的函数体中的子函数调用wait()
如果是,是否必须通过变量将子pid传递给main()
?是,main可以等待子函数分叉的子函数。wait()等待任何子级终止
您仍然需要将fork()的返回值传递给main函数,因为您需要它来决定您是子进程还是父进程。如果我正确地回答了这个问题,您需要这样的内容:
main
调用function
function
调用fork
创建子/ren,并在父进程中返回
main
稍后调用子/ren上的wait
这很好…名义上,您不必将子进程(ren)的PID传递回main
,因为您只需调用wait
即可获取任何碰巧存在的子进程;但是,要使用waitid
或waitpid
,您需要/希望将它们备份到main
。您可以在链表或以NULL结尾的数组等结构中将PID返回到main
,也可以创建某种文件范围或全局变量来包含列表
Linux手册页面中有一个非常好的分类,它是wait(2)
(man2wait
左右)