我正在读“Unix环境中的高级编程”一书。
以下是我无法理解的一句话:
具体来说,exec()函数将捕捉到的任何信号的处理更改为默认操作,并保留所有其他信号的状态。
我知道信号的动作被改变为默认动作。但是,信号的状态是什么呢?
发布于 2016-03-06 15:53:07
在……里面
具体来说,exec()函数将捕捉到的任何信号的处理更改为其默认操作,并保留所有其他信号的状态。
“所有其他信号的状态”是指没有被捕获的信号,例如被忽略的信号(SIG_IGN)。
如果您的程序为信号添加了一个处理程序,该程序可以捕获该信号(当然,SIGKILL和SIGSTOP除外,它们无法被捕获)。当您调用exec()函数时,在调用exec()函数之后,所有这些信号处理程序都不适用于程序。
如果程序没有为给定的信号添加信号处理程序,那么调用exec()函数不会改变该信号影响程序的方式。
信号处理程序可以用signal或sigaction建立。
https://unix.stackexchange.com/questions/267991
复制相似问题