我知道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创建子进程,但我希望父进程等待。有人请解释并举例说明。
由于
答案 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进行比较。如果它发现已结束的进程与此父进程等待的进程不同,则它会继续等待()。