信号SIGINT

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

(0)

相关推荐