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

linux c 等待所有子进程结束

2013-03-08 20:20 288 查看
当子进程结束时,它会向父进程发送SIG_CHLD信号,然后父进程使用wait waitpid waittid函数来捕获某一子进程的退出状态。当需要等待所有子进程全部退出时,我们可以设置SIG_CHLD为SIG_IGN,然后使用wait来阻塞直到所有子进程全部退出:

[cpp] view
plaincopy

int main()

{

signal(SIGCHLD, SIG_IGN);

pid_t pid1;

if((pid1 = fork()) == 0)

{

sleep(3);

std::cout<<"child 1 exit."<<std::endl;

exit(0);

}

pid_t pid2;

if((pid2 = fork()) == 0)

{

sleep(5);

std::cout<<"child 2 exit."<<std::endl;

exit(0);

}

wait(NULL);

std::cout<<"parent exit."<<std::endl;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: