• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

【Unix信号】从标准库函数<assert.h>写起

开发技术 开发技术 4小时前 1次浏览

【信号】从标准库函数<assert.h>写起

1. assert用法

如果

assert(表达式)

中,表达式为0,则assert将在stderr中打印消息。并调用abort()终止程序。

2. abort()

abort函数的功能是将程序异常终止。它将SIGABRT信号发送给调用进程。

3. SIGABRT

信号,是软件中断。

SIGABRT,是夭折信号。表示程序异常终止。系统默认动作为:终止+core。

4. 动作

当信号出现时,内核可以按照一下三种方式进行处理

  • 忽略

    SIGKILL和SIGTOP不可以忽略。

  • 捕捉

    在某信号发生时,调用一个用户函数。

  • 执行系统默认动作

    大部分是终止进程。

5. 是行动而不是判断

产生信号的事件对进程是随机出现的。

因此我们不能简单地测试一个变量来判断是否发生一个信号,

而是告诉内核,“当信号出现时,我们该什么。”


程序员灯塔
转载请注明原文链接:【Unix信号】从标准库函数<assert.h>写起
喜欢 (0)