在C中捕获非特定信号

时间:2018-01-30 13:12:06

标签: c unix signals

我已经在这里读过很多关于在C中捕获信号的信息。但是我见过的所有代码示例都在关注特定的信号。与SIGINTSIGTERM一样。

假设我有一个程序,我想检查信号。我在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);
}

我希望我的问题是可以理解的,而且我不会错过一些非常明显的问题。

0 个答案:

没有答案