分享

信号SIGINT

 Kinetis 2021-09-14

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多