Linux SIGQUIT 捕获

test.c

#include <stdio.h>
#include <signal.h>

void quit_handler(void);

int main(int argc, char ** argv)
{
    sigset( SIGQUIT, quit_handler );
    printf( "Process_pid=[%d]\n", getpid() );
    while(1);
    return 0;
}

void quit_handler(void)
{
    printf("Get a SIGQUIT signal!\n"); 
}

SIGQUIT : 与SIGINT类似,但由QUIT字符(通常是Ctrl+\)来控制。进程因收到SIGQUIT退出时会产生core文件,在这个意义上类似于一个程序错误信号。

gcc  test.c -o test

运行程序:

./test

按下"Ctrl+" 键((or kill -3 1234,kill -SIGQUIT 1234)),程序并不退出,而是打印输出 Get a SIGQUIT signal!。
可以使用Ctrl+C 来退出(SIGINT)。


版权声明:本文为a379039233原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。