加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Signal Handling--ref

发布时间:2021-01-25 08:01:09 所属栏目:Linux 来源:网络整理
导读:signal is a software interrupt delivered to a process. The operating system uses signals to report exceptional situations to an executing program. Some signals report errors such as references to invalid memory addresses; others report asy

void
fatal_error_signal (int sig)
{
/ Since this handler is established for more than one kind of signal,it might still get invoked recursively by delivery of some other kind
of signal. Use a static variable to keep track of that.
/
if (fatal_error_in_progress)
raise (sig);
fatal_error_in_progress = 1;

/* Now do the clean up actions:

  • reset terminal modes
  • kill child processes
  • remove lock files */
    ...

/ Now reraise the signal. Since the signal is blocked,it will receive its default handling,which is
to terminate the process. We could just call
exit or abort,but reraising the signal
sets the return status from the process correctly.
/
raise (sig);
}

setjmpandlongjmpfacilities (see section).

#include 
#include 

jmp_buf return_to_top_level;

volatile sig_atomic_t waiting_for_input;

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读