我想检测程序的kill信号,以便在离开程序之前执行一些C指令。我的程序在linux上运行
有可能吗?如果是,我该怎么做?
答案 0 :(得分:5)
您可以使用sigaction()
注册signal handler。请注意,您无法处理SIGKILL
或SIGSTOP
。
答案 1 :(得分:1)
不,SIGKILL无法处理,也许你想要赶上CTRL + C,然后:
#include <stdio.h>
#include <signal.h>
volatile sig_atomic_t stop;
void
inthand(int signum)
{
stop = 1;
}
int
main(int argc, char **argv)
{
signal(SIGINT, inthand);
while (!stop)
printf("a");
printf("exiting safely\n");
return 0;
}
会做的伎俩
答案 2 :(得分:-1)
如果SIGKILL或SIGTERM被发送到您的过程,您无法屏蔽或忽略该信号。您可以处理和掩盖它的其他信号。