ctrl + c不发送SIGKILL进行处理

时间:2012-03-28 09:25:07

标签: c linux sigkill

我尝试过实现这个功能:

void alarm_handler(int signal)
{
    if(signal==SIGKILL)
    {
        fprintf(stderr,"Process killed\n");
        exit(SIGKILL);
    }
}

并以这种方式使用它:

signal(SIGKILL,alarm_handler);

所以如果按ctrl + c,退出之前会打印“Process killed”,但id不会打印出来。为什么?

2 个答案:

答案 0 :(得分:13)

Ctrl + C通常会发送SIGINT,而不是SIGKILL

答案 1 :(得分:3)

无法捕获,阻止或忽略信号SIGKILL和SIGSTOP。

使用SIGINT。