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;
}
[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;
}
相关文章推荐
- linux等待所有子进程的方法
- linux下的wait()实现等待一个子进程和所有子进程退出
- 让wait等待所有子进程结束
- 等待所有子进程结束
- shell同时启多个进程,并等待所有子进程结束,再做接下来的操作,最好能获取每个子进程的退出状态
- Linux下利用fork()创建子进程并使父进程等待子进程结束
- shell同时启多个进程,并等待所有子进程结束
- linux中父进程等待所有的子进程结束的方法
- Linux系统编程——进程的控制:结束进程、等待进程结束
- Java多线程等待所有线程结束(CountDownLatch/CyclicBarrier)
- [Linux]打印父进程的所有子进程
- Java实现等待所有子线程结束后再执行一段代码的方法
- Java:多线程等待所有线程结束(CountDownLatch/CyclicBarrier) .
- CountDownLatch 多线程,等待所有线程结束
- 多个子线程并发执行,主线程等待所有子线程都结束后再继续运行
- Linux查看进程的所有子进程和线程
- Linux查看进程的所有子进程和线程
- linux 进程学习笔记-等待子进程结束
- Linux系统编程——进程的控制:结束进程、等待进程结束
- Linux查看进程的所有子进程和线程