信号知识简单梳理

1.什么是信号

    信号:是一种软件中断,终止当前正在执行的成寻转而执行程序代码。常见的信号有:段错误,总线错误,浮点数例外等。(注:/0为浮点数例外,而1.0/0为正常执行代码,其结果为无限大)。

    信号具有异步性,不知道什么时候会有信号,程序中无法准确的判断。信号可以用于进程间通信,进程间可以互发信号。

    信号其实就是一个整数,每个信号有自己的名字,以 SIG 开头。信号名就是整数的宏定义。

    kill -l 查看所有信号。

2.信号的来源

    2.1  硬件检测。

    2.2  调用系统函数产生的信号。

3.信号的分类

    3.1 不可靠信号:1-31的信号都为不可靠信号,有可能丢失,不支持排队,不可靠信号都是非实时的。

    3.2  可靠信号: 其他信号都为可靠信号,不会丢失,支持排队,都是实时信号,在linux中34-64都是可靠信号。

发送信号的方式:

1.键盘发送 ctrl + c -> 信号2

           ctrl + \ -> 信号3

           ctrl + z -> 信号20

2.出错 访问内存出错 -> 段错误(即虚拟内存与物理内存映射失败) 信号11

       总线错误 -> 信号7

       除0 -> 信号8

3.kill 命令发送  kill -信号ID 进程号(有用户限制)

4.信号发送函数: kill,raise,alarm,sigqueue

     信号集:

     类型 sigset_t

     函数:sigemptyset,sigfillset,sigaddset,sigdelset,sigismember

     信号屏蔽:sigprocmask(int,const sigset_t*,sigset_t*)

 

 

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(273) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值