当我执行exec()系统调用(6个exec调用系列中的任何一个)时,挂起的信号和信号掩码会发生什么?
据我所知,从man的execve页面可以看出信号处理被重置为默认值。但它没有提到信号配置和信号掩模。
man
execve
我想知道发生了什么以及为什么会发生这种情况的任何理由。
谢谢
这是有据可查的。
如果先前将信号行为设置为处理程序,则信号行为显然会重置为默认值,因为捕获函数代码无法按照定义存活到exec。如果它是SIG_DFL或SIG_IGN,它仍然如此。
exec
SIG_DFL
SIG_IGN
过程信号掩码是记录的。