请问如何等待所有的子进程结束后再继续?

johndotcom 2002-06-28 07:44:41
父进程建立了多个子进程,请问如何等待所有的子进程结束后再继续父进程?
我试过wait()了多次,不过除了第一个wait()外,其它的wait()都会立刻返回。
...全文
170 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
young_wind 2002-07-01
  • 打赏
  • 举报
回复
void waitchild(int signo)
{
pid_t pid;
while((pid = waitpid(-1, NULL, WNOHANG))>0){
}
}

young_wind 2002-07-01
  • 打赏
  • 举报
回复
void waitchild(int signo)
{
pid_t pid;
while((pid = waitpid(-1,NULL,WNOHANG))>0){
}
}





johndotcom 2002-06-29
  • 打赏
  • 举报
回复
但wait一次,如果有一个子进程结束的话,就会唤醒父进程了啊
qxp 2002-06-29
  • 打赏
  • 举报
回复
用 waitpid()
里面有这样的说明:

pid_t waitpid(pid_t pid, int *status, int options);

RETURN VALUE
The process ID of the child which exited, -1 on error or
zero if WNOHANG was used and no child was available (in
which case, errno is set to an appropriate value).
yixudong 2002-06-28
  • 打赏
  • 举报
回复
wait一次就够了吧

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧