linux练习 十一 信号的阻塞和捕捉
2017-12-19 20:01
381 查看
#include <signal.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <unistd.h> void myfunc(int signo) { if(SIGQUIT == signo) { printf("recv SIGQUIT sig\n"); } else if(SIGINT == signo) { printf("recv SIGINT sig\n"); } } int main(int argc,char * argv[]) { sigset_t sigset; struct sigaction action1; if(sigemptyset(&sigset) < 0) { perror("sigemptyset"); exit(-1); } if(sigaddset(&sigset,SIGQUIT) < 0) { perror("sigaddset"); printf("%s:%d\n",__FUNCTION__,__LINE__); exit(-1); } printf("%s:%d\n",__FUNCTION__,__LINE__); if(sigaddset(&sigset,SIGINT) < 0) { perror("sigaddset"); exit(-1); } sigprocmask(SIG_BLOCK,&sigset,NULL); printf("block sigset\n"); sleep(5); printf("unblock sigset\n"); sigemptyset(&action1.sa_mask); action1.sa_handler = myfunc; if(sigaction(SIGQUIT,&action1,NULL) < 0) { perror("sigaction"); } if(sigaction(SIGINT,&action1,NULL) < 0) { perror("sigaction"); } sigprocmask(SIG_UNBLOCK,&sigset,NULL); while(1) { sleep(5); printf("wait for sig\n"); } }
相关文章推荐
- Linux Linux程序练习十三(信号阻塞,捕获)
- linux中信号的产生 阻塞与捕捉
- linux 信号 --- 产生 阻塞 捕捉
- linux下采用trap对信号进行捕捉
- Linux 改进捕捉信号机制(sigaction,sigqueue)
- linux下的信号阻塞
- Linux捕捉信号机制之(signal,kill)、(sigaction,sigqueue)
- Linux信号捕捉之sigaction
- Linux信号和阻塞
- 阻塞信号和捕捉信号
- linux信号机制之sigaction结构体浅析,signal 函数,信号捕捉
- Linux信号机制之信号阻塞
- 在qt程序中捕捉linux信号,sigint sighup sigterm
- linux的信号捕捉函数详解
- 信号——产生、处理、捕捉、接收、阻塞
- 【Linux】阻塞信号
- Linux下的信号详解及捕捉信号
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - 安装信号与捕捉信号 分类: Linux --- 应用程序设计 2014-11-08 13:00 49人阅读 评论(0) 收藏
- linux信号机制之sigaction结构体浅析,signal 函数,信号捕捉
- java 捕捉信号(linux下的kill,ctrl+c)