我已经在这里读过很多关于在C中捕获信号的信息。但是我见过的所有代码示例都在关注特定的信号。与SIGINT
或SIGTERM
一样。
假设我有一个程序,我想检查信号。我在main
函数中使用此函数:signal(SIGINT, sighandler);
其中sighandler
是我自己定义的函数,如下所示:
void sighandler(int signo)
{
printf("\n Recieved signal %d", signo);
signal(SIGINT, sighandler);
}
但如果我想检查更多信号,我必须在我的main
功能函数中添加更多检查,如:
...
signal(SIGINT, sighandler);
signal(SIGTERM, sighandler);
signal(SIGILL, sighandler);
...
或者我可以使用通配符(?)来捕获多个异常,例如:signal(SIGALL, sighandler);
。然后检查我的功能发送了什么?
void sighandler(int signo)
{
printf("\n Recieved signal %d", signo);
signal(signo, sighandler);
}
我希望我的问题是可以理解的,而且我不会错过一些非常明显的问题。