#include <stdio.h> #include <stdlib.h> #include <signal.h> //这是使用sigaction函数注册的信号函数 void signalDeal(int sig,siginfo_t *info,void *t) { if(sig == SIGINT) //对应ctrl+c { printf("CTRL+C按键被按下。\n"); } else if(sig == SIGQUIT) //对应ctrl+/ { printf("CTRL+/按键被按下.\n"); } else { printf("其他信号。\n"); } } int main(int argc,char *argv[]) { struct sigaction act; //定义sigaction结构体 act.sa_sigaction = signalDeal; //指定信号处理函数 sigemptyset(&act.sa_mask); //清空信号集中的信号 act.sa_flags = SA_SIGINFO; //信号附带的参数可以被传递到处理函数中 sigaction(SIGINT,&act,NULL); //设置SIGINT处理函数 sigaction(SIGQUIT,&act,NULL); //设置SIGQUIT处理函数 while(1) { } return 0; }
[Linux信号]使用sigaction函数注册信号
原创
©著作权归作者所有:来自51CTO博客作者银河星君的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux信号处理方法signal,sigaction和 信号集
信号的处理包括信号的发送、 捕获及信号的处理, 它们有各自相对应的常见函数。 发送信号的函
信号处理 #include 函数返回值 -
(P20)信号安装函数:sigaction
gaction实例
#include #define 信号处理 -
sigaction信号处理
1. sigactionint sigact...
信号处理 数据 sed 系统调用 自动启动