我尝试过实现这个功能:
void alarm_handler(int signal)
{
if(signal==SIGKILL)
{
fprintf(stderr,"Process killed\n");
exit(SIGKILL);
}
}
并以这种方式使用它:
signal(SIGKILL,alarm_handler);
所以如果按ctrl + c,退出之前会打印“Process killed”,但id不会打印出来。为什么?
答案 0 :(得分:13)
Ctrl + C通常会发送SIGINT
,而不是SIGKILL
。
答案 1 :(得分:3)
无法捕获,阻止或忽略信号SIGKILL和SIGSTOP。
使用SIGINT。