06-终止信号处理器函数的其他方法
21.2 终止信号处理器函数的其他方法
目前为止所看到的信号处理器函数都是以返回主程序而终结。不过,只是简单地从信号处理器函数中返回并不能满足需要,有时候甚至没什么用处。(22.4节在讨论硬件产生的信号时会举出这方面的例子。)
以下是从信号处理器函数中终止的其他一些方法。
- 使用_exit()终止进程。处理器函数事先可以做一些清理工作。注意,不要使用exit()来终止信号处理器函数,因为它不在表21-1所列的安全函数中。之所以不安全,是因为如25.1节所述,该函数会在调用_exit()之前刷新stdio的缓冲区。
- 使用kill()发送信号来杀掉进程(即,信号的默认动作是终止进程)。
- 从信号处理器函数中执行非本地跳转。
- 使用abort()函数终止进程,并产生核心转储。
以下各节将会对最后两点做深入讨论。