fork()和wait()连接到pid

时间:2011-06-20 05:45:51

标签: fork execv

我知道fork()创建了一个子进程,将0返回给child并将child的pid返回给parent。

据我所知,wait()还会返回已终止的子进程的某种pid。这是与fork之后返回父级的pid相同的pid吗?

我不明白如何使用wait()。

我的教科书只是显示

int ReturnCode;
while (pid!=wait(&ReturnCode));
/*the child has terminated with Returncode as its return code*/

我甚至不明白这意味着什么。

我如何使用wait()?我使用execv创建子进程,但我希望父进程等待。有人请解释并举例说明。

由于

2 个答案:

答案 0 :(得分:0)

wait()确实会返回死亡的子进程的PID。如果您只有一个子进程,则实际上不需要检查PID(确实检查它不是零或负数;有些条件可能导致等待调用失败)。您可以在此处找到示例:http://www.csl.mtu.edu/cs4411/www/NOTES/process/fork/wait.html

答案 1 :(得分:0)

  

wait()获取整数的地址   变量并返回进程ID   完成的过程。

有关wait()系统调用的更多信息

while (pid!=wait(&ReturnCode));

循环将wait()返回的进程id(pid)与先前从 fork 或任何其他进程启动器接收的pid进行比较。如果它发现已结束的进程与此父进程等待的进程不同,则它会继续等待()。