我正在编写一个库,在其中我 fork() 和 execvp() 来启动另一个程序。据我了解, execvX() 将“自定义”信号处理程序重置为 SIG_DFL,但它没有将任何忽略的信号处理程序设置为 SIG_DFL。
请记住,它是一个库,我无法控制用户将如何处理信号,将忽略信号的信号处理程序设置为 SIG_DFL 是否是个好主意?
如果是,是否有某种方法可以一次将所有信号处理程序设置为 SIG_DFL?我是否必须遍历所有信号编号?在这种情况下,我怎样才能找到最后一个可能的信号编号?我在 bits/signum.h 中看到了 _NSIG。这是 POSIX 的不变部分还是特定于 Linux?
谢谢。