检查信号处理程序是否不是默认值

时间:2015-05-06 12:53:18

标签: c++ linux signals

是否可以从其他线程检查是否已调用信号功能? (即默认信号处理程序不是默认值)     signal(SIGTERM,signal_handler);

1 个答案:

答案 0 :(得分:2)

您始终可以通过signal()sigaction()获取当前信号处理程序(它们在应用新处理程序之前返回上一个处理程序,请参阅mans)。

获得后,您可以将其与您想要的任何内容进行比较。例如。如果您正在谈论真正的默认信号处理程序,您可以将当前的一个与SIG_DFL进行比较(或者您可能必须将处理程序设置为SIG_DFL,然后再将其设置为另一个处理程序,存储与SIG_DFL)相关的内容。