signal 杂谈
来源:互联网 发布:2017最新网络情歌 编辑:程序博客网 时间:2024/06/02 01:17
信号sigsuspend终于搞懂了。道路是曲折的。
如有无信号处理函数。zeromask和waitmask区别。两者对pause和sigsuspend的不同.
对信号是不是pending。非mask的信号处理。
testcase的情况很多。易混淆.
pause和sigsuspend:
comments: sigpromask 的mask 和sigsuspend的pendmask 没有关系。这是两个不同的mask。互相不影响。
sigprocmask是为pause用的,如设置mask为block ,SIGQUIT。则pause将ignore SIGQUIT。
对sigsuspend没有任何影响。
对于sigsuspend 根据自己的pendmask在决定做什么。
如果其不是empty,mask是SIGQUIT,则block SIGQUIT。
如果是empty,则接收任何信号。在pendmask会保存这个信号。
signal函数是非block的,在后台。类似捕获中断,捕获信号。然后用函数处理信号。是接收信号,
与发送信号没关系。
alarm,kill 等才是发送信号。
wait是等待进程结束,和信号没关系
sigsuspend 和sigprocmask 使用上没有任何关系。但是它们是固定搭配。
在sigsuspend之前,先save current signal mask。在sigsuspend之后,restore signal mask。
//保存当前信号屏蔽字
if (sigprocmask(SIG_BLOCK,&newmask,&oldmask)<0)
if (sigsuspend(&waitmask))
// 恢复原来的信号屏蔽字
if(sigprocmask(SIG_SETMASK,&oldmask,NULL))
sigpromask(0,NULL,&sigset) 这句很主要。这句是get current signal。不是清空.
信号还有一些其他函数:sigemptyset, sigaddset, sigismember
signal和sigset 一样。sigaction是signal的升级版
abort函数
abort()是使异常程序终止,同时发送SIGABRT信号给调用进程。
- signal 杂谈
- signal
- signal
- Signal
- signal
- signal
- signal
- signal
- signal
- signal()
- signal
- signal
- signal
- signal
- Signal
- signal
- signal
- signal
- 背包问题之01背包
- DB2超过20亿大数据量查询
- request&response笔记
- memcache和memcached区别
- display和visibility的区别
- signal 杂谈
- (素材源码) 猫猫学IOS(十二)UI之UITableView学习(上)LOL英雄联盟练习
- 菜鸟的我理解的面向对象,不知对不对。
- hello word 我的第一篇CSDN博客
- activity(二)
- Django 1.7使用Migrations将模型应用到数据库
- Restore IP Addresses
- 我是孔令德
- 网站迁移到空白windows2008机器配置apache+php+mysql笔录