【信号】从标准库函数<assert.h>写起
1. assert用法
如果
assert(表达式)
中,表达式为0,则assert将在stderr中打印消息。并调用abort()终止程序。
2. abort()
abort函数的功能是将程序异常终止。它将SIGABRT信号发送给调用进程。
3. SIGABRT
信号,是软件中断。
SIGABRT,是夭折信号。表示程序异常终止。系统默认动作为:终止+core。
4. 动作
当信号出现时,内核可以按照一下三种方式进行处理
-
忽略
SIGKILL和SIGTOP不可以忽略。
-
捕捉
在某信号发生时,调用一个用户函数。
-
执行系统默认动作
大部分是终止进程。
5. 是行动而不是判断
产生信号的事件对进程是随机出现的。
因此我们不能简单地测试一个变量来判断是否发生一个信号,
而是告诉内核,“当信号出现时,我们该做什么。”
浙公网安备 33010602011771号