当前位置:嗨网首页>书籍在线阅读

06-终止信号处理器函数的其他方法

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

21.2 终止信号处理器函数的其他方法

目前为止所看到的信号处理器函数都是以返回主程序而终结。不过,只是简单地从信号处理器函数中返回并不能满足需要,有时候甚至没什么用处。(22.4节在讨论硬件产生的信号时会举出这方面的例子。)

以下是从信号处理器函数中终止的其他一些方法。

  • 使用_exit()终止进程。处理器函数事先可以做一些清理工作。注意,不要使用exit()来终止信号处理器函数,因为它不在表21-1所列的安全函数中。之所以不安全,是因为如25.1节所述,该函数会在调用_exit()之前刷新stdio的缓冲区。
  • 使用kill()发送信号来杀掉进程(即,信号的默认动作是终止进程)。
  • 从信号处理器函数中执行非本地跳转。
  • 使用abort()函数终止进程,并产生核心转储。

以下各节将会对最后两点做深入讨论。