您的位置:首页 > 运维架构 > Linux

linux中父进程等待所有的子进程结束的方法

2013-03-09 11:10 218 查看
pid_t r_wait(int * stat_loc)
{
int revalue;
while(((revalue = wait(stat_loc)) == -1) && (errno == EINTR));//如果等待的过程中被一个不可阻塞的信号终断则继续循环等待
return revalue;
}


服务退出之前父进程等待子进程的调用方法:

while(r_wait(NULL) > 0);//wait for all the subprocess.


在多进程程序中用于收集已退出进程的方法:

signal(SIGCHLD,sigchld_handler);
void sigchld_handler(int signo)
{
pid_t pid;
while((pid = waitpid(-1,NULL,WNOHANG)) > 0)
cout<<"pid "<<pid<<" exited !"<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: