signal信号的基础知识

内容来源于网络总结。

1、信号三个特征:

1)简单

2)不能携带大量信息

3)需要满足一定的条件才能执行

2、信号与中断很像,当进程程序执行过程中,收到信号,进程马上处理信号,处理完信号后再继续执行剩下的代码,所以,信号又称为软中断,时钟中断称为硬中断(通过硬件实现的)。

3、信号是由内核产生,并由内核进行处理。

4、产生信号的五种形式:

1)按键产生,如 ctrl +c、ctrl+z,ctrl+\

2)系统调用产生,如kill函数,raise函数,abort函数

3)软件条件产生,如定时器alarm,调用函数,开始计时,时间到,发送信号

4)硬件异常产生,如:非法访问内存(段错误)、除0(浮点数例外)、内存对齐出错(总线错误)

5)命令产生,如kill命令

5、信号处理三种方式

1)执行默认动作

2)忽略(丢弃)

3)捕捉(调用户处理函数)

其中默认动作有5种:

1)Term :终止进程

2)Ign:忽略信号(默认即对该种信号忽略操作)

3)Core:终止进程,并生成Core文件,(查验进程死亡原因,用于gdb调试)

4)Stop :停止(暂停)进程

5)continue:继续运行进程

6、信号的2种状态

递达:递送并且到达进程。

未决:信号产生和递达之间的状态。主要由于阻塞(屏蔽)导致该状态

即阻塞信号集(信号屏蔽字)----->决定着未决信号集  :某信号在阻塞信号集中为1,即该信号被阻塞了,则该信号在未决信号集里为1(即未递达)

正常情况下,信号在未决信号集里是由0快速变为1,又快速变为0的。

7、信号的四要素:

信号名+信号编号+信号默认处理动作+信号对应的事件(事件发生时才会发生)

使用 kill -l 查看所有的信号

34-64 为实时信号,一般在嵌入式开发中使用,我们不考虑;

1-31为常规信号,需要掌握常用信号的四要素。 

有3个编号的,我们取中间值,对应x86和arm;边上2个是对应别的cpu架构下的。 

 

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值