SIGINT信号: 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。 例子1: #include <stdio.h> #include <signal.h> #include <stdlib.h> void sig_int(int signo) { printf("sig_int\n"); //exit(0); } int main(int argc, char *argv[]) { //signal(SIGINT, sig_int); while (1) ; return 0; } 程序运行后,ctrl+c会终止程序 例子2: #include <stdio.h> #include <signal.h> #include <stdlib.h> void sig_int(int signo) { printf("sig_int\n"); //exit(0); } int main(int argc, char *argv[]) { signal(SIGINT, sig_int); while (1) ; return 0; } 自己捕捉信号,ctrl+c不会终止程序,需要kill -9 pid 例子3: #include <stdio.h> #include <signal.h> #include <stdlib.h> void sig_int(int signo) { printf("sig_int\n"); exit(0); } int main(int argc, char *argv[]) { signal(SIGINT, sig_int); while (1) ; return 0; } 自己捕捉信号,ctrl+c终止程序 总结:信号SIGINT默认处理的时候会调用exit终止程序 ———————————————— 版权声明:本文为CSDN博主「随波不逐流」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_42377147/article/details/90475758 |
|