如何检查 Linux 中的信号处理程序

如何检查 Linux 中的信号处理程序

我已阅读此讨论,其中讨论了如何检查每个进程的信号操作: 如何检查进程正在监听哪些信号?

但是,我想使用C/C++、Python或其他方式来获取每个进程的信号处理程序名称的用户空间。就像 Solaris 中的 psig 一样: 执行psig命令时每一列的含义是什么?

在 Linux 中可以做到这一点吗?

答案1

signal函数返回指向现有处理程序(如果有)的指针。您可以将信号设置为已知值,获取现有处理程序的地址并将其恢复。

答案2

使用信号动作而不是使得signal可以请求当前信号处理程序而无需设置另一个处理程序。您只需NULL作为第二个参数传递:

请参见这个答案代码示例。

相关内容