Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UNIX进程:fork()和wait()_Unix_Fork_Wait_Waitpid - Fatal编程技术网

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 this
main()
的函数体中的子函数调用
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
左右)