#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; }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。