信号处理

信号处理

一. 信号是一种软中断,

  中断分为硬中端和软中断,软中断是来自其他程序的中断,硬中断是来自硬件设备的中断

二.常见的信号

  SIGINT,SIGCONT,SIGALRM,SIGSTOP,SIGTSTP,SIGABRT,SIGKILL,SIGQUIT,SIGCHLD

三.信号分为不可靠信号和可靠信号

  编号小于34的是不可靠信号,不支持排队,无论发送多少信号,程序只执行一次,信号会丢失

  编号大于34小于64属于可靠信号,支持排队,排队等候处理

  无论是可靠信号还是不可靠信号,都通过kill发送信号

四.信号的捕获与处理

  通过signal函数进行注册,函数只执行一次,如果想一直处理,可以在函数结束时,再次申请注册signal

   

五.子进程信号的处理

  通过fork创建的子进程是跟父进程一样的信号处理方式

  但是vfork不一样,子进程与父进程不一样的信号处理方式

六.

  sleep pause,alarm

 

七.

  信号集与信号屏蔽
  什么是信号集:信号的集合sigset_t,由128个二进制组成,每一个二进制
  代表一个集合

  为什么要设置进程信号屏蔽:当执行一些敏感操作时不希望被一些信号打扰,但有不希望
  信号丢失(忽略),可以先吧信号屏蔽了让信号处于未决状态(信号一惊产生但是内核还没法给相应的进程)
  等把事情处理完再解除屏蔽,未决的信号就会达到西施再处理,忽略,终止

  int sigpending(sigset_t *set)
  功能:获取未决状态的信号,可以在解除信号屏蔽前预先查找有那写未决状态的信号

posted @ 2018-07-31 20:42 zlc1010 阅读( ...) 评论( ...) 编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值