聊聊SIGCHLD信号的作用
来源:互联网 发布:阿里云域名控制台 编辑:程序博客网 时间:2024/06/10 18:04
一句话总结:子进程终止或者停止时,将SIGCHLD信号发送给其父进程,按系统默认将忽略此信号,如果父进程希望被告知其子系统的这种状态,则应捕捉此信号。
看下如何捕捉
#include <stdio.h>#include <sys/wait.h>#include <sys/types.h>#include <signal.h>#include <unistd.h>void sigFun(int sig){printf("sigFun begin\n");pid_t pid;int status;while((pid = waitpid(-1, &status, WNOHANG)) > 0){printf("catch child process, pid:%d\n", pid);}printf("sigFun end\n");return;}int main(){pid_t pid1, pid2;signal(SIGCHLD, sigFun);pid1 = fork();if (pid1 < 0)return -1;if(0 == pid1){sleep(5);printf("child sleep 5 sec\n");}else{sleep(10);printf("parent sleep 10 sec\n");}}
signal(SIGCHLD, sigFun); //表示SIGCHLD信号由函数sigFun处理。
当子进程结束后,发送SIGCHLD给父进程,此时由sigFun捕捉信号并处理。sleep中的父进程也立马被唤醒继续往下执行。
zjy@ubuntu:~/cpp$ ./main
child sleep 5 sec
sigFun begin
catch child process, pid:4426
sigFun end
parent sleep 10 sec
zjy@ubuntu:~/cpp$
阅读全文
0 0
- 聊聊SIGCHLD信号的作用
- linux的SIGCHLD信号
- 关于SIGCHLD信号的处理
- 关于SIGCHLD信号的处理
- Linux下的SIGCHLD信号
- SIGCHLD信号
- SIGCHLD 信号
- SIGCHLD信号
- SIGCHLD信号与SIG_IGN处理的使用
- SIGCHLD信号与SIG_IGN处理的使用
- SIGCHLD信号与SIG_IGN处理的使用
- SIGCHLD信号与SIG_IGN处理的使用
- SIGCHLD信号与SIG_IGN处理的使用
- SIGCHLD信号与SIG_IGN处理的使用
- SIGCHLD信号与SIG_IGN处理的使用
- SIGCHLD信号与SIG_IGN处理的使用
- 【信号】---关于SIGCHLD信号
- ignore SIGCHLD信号
- 筛法加强版
- Linux Shell脚本攻略 学习笔记 --- 第一天
- 科普一下: 电子的速度很慢,比乌龟还慢, 比蚂蚁还慢!
- linkedlist源码解读
- Codeforces Round #442 (Div. 2)(思路题)
- 聊聊SIGCHLD信号的作用
- 51nod 1407 与与与与 dp+容斥
- 菜单
- 状态模式学习和思考
- ubuntu常用软件安装
- Django 和mysql通信得插件windows下安装mysql-python报错的解决办法
- RGB颜色模式
- String to Integer 算法学习
- php--Can't use function return value in write context