【Linux】子进程的异步等待方式
2017-06-29 11:50
239 查看
子进程在终止时会给父进程发 SIGCHLD 信号,该信号的默认处理动作是忽略,父进程可以自定义 SIGCHLD 信号的处理函数,这样父进程只需专心处理自己的工作,不必关心子进程了,子进程终止时会通知父进程,父进程在信号处理函数中调用 wait 清理子进程即可。
一、子进程退出时给父进程发送信号
vim mysig.c
vim Makefile
运行结果如下:
我们可以看到子进程退出时给父进程发送了 17 号信号,我们用命令 kill -l 查看信号列表,可以看到 17 号信号就是 SIGCHLD 信号。
二、父进程异步等待子进程
vim sigchld.c
vim Makefile
运行结果如下:
我们可以发现父进程 fork 出子进程,子进程调用 exit(1) 终止,父进程自定义 SIGCHLD 信号的处理函数,在其中调用 wait 获得了子进程的退出状态并打印。父进程先每隔一秒打印一次,五秒后子进程打印,然后子进程彻底退出,父进程一直打印直到我们强制停止它。
一、子进程退出时给父进程发送信号
vim mysig.c
vim Makefile
运行结果如下:
我们可以看到子进程退出时给父进程发送了 17 号信号,我们用命令 kill -l 查看信号列表,可以看到 17 号信号就是 SIGCHLD 信号。
二、父进程异步等待子进程
vim sigchld.c
vim Makefile
运行结果如下:
我们可以发现父进程 fork 出子进程,子进程调用 exit(1) 终止,父进程自定义 SIGCHLD 信号的处理函数,在其中调用 wait 获得了子进程的退出状态并打印。父进程先每隔一秒打印一次,五秒后子进程打印,然后子进程彻底退出,父进程一直打印直到我们强制停止它。
相关文章推荐
- 【Linux】子进程的异步等待方式
- Linux信号(一)——子进程的异步等待方式
- 【Linux】子进程的异步等待方式
- Linux下父进程异步等待子进程
- Linux父进程对于子进程的异步等待
- 关于子进程异步等待方式(SIGCHLD信号)
- 进程等待及子进程异步等待方式
- 子进程的异步等待方式
- linux 异步信号的同步处理方式
- Linux下利用fork()创建子进程并使父进程等待子进程结束
- Linux退出进程exit/_exit和等待子进程退出wait函数分析
- 子进程的异步等待方式
- Linux子进程的异步等待方式
- linux c 等待所有子进程结束
- 子进程的异步等待方式
- Linux日常——信号(4)子进程的异步等待方式
- 子进程的异步等待方式
- 父进程异步等待子进程
- linux下的wait()实现等待一个子进程和所有子进程退出
- 验证子进程退出时会给父进程发送信号的机制 、 编写父进程等待子进程的异步版本