Linux信号2

3.由软件条件产生信号

        alarm函数可以设定一个闹钟,也就是告诉内核在seconds秒之后给当前进程发送SIGALARM信号,该信号的默认处理动作是终止当前进程。返回值是0或者上次设定的闹钟余下的秒数,当seconds为0时表示取消该闹钟。

4.阻塞信号

信号递达:实际执行信号的处理动作成为信号递达。

信号未决:信号从产生到递达之间的状态称为信号未决。

被阻塞的信号产生时将保持在未决状态,当接触阻塞时它将会被递达。

信号集操作函数如下:

sigemptyset表示初始化信号集,使对应的bit清零;

sigfillset表示所有bit置位;

sigaddset表示在信号集中添加某个信号;

sigselset表示在信号集中删除某个信号;以上四个函数成功返回0,不成功返回-1.

sigismember是一个布尔函数,用于判断一个信号集是否包含某种信号,包含返回1,不包含返回-1.

调用sigprocmask可以读取或者更改进程的信号屏蔽字。成功返回0失败返回-1.

how参数可选值为:

SIG_BLOCK阻塞某个信号,SET_UNBLOCK解除阻塞某个信号,SIG_SETMASK设置当前信号屏蔽字。第二个参数表示当前信号屏蔽字,第三个参数表示旧的信号屏蔽字。

sigpending读取当前进程的未决信号集。

以下程序是由起初的31个0变成,当接收到2号信号时对应的第二个比特位给它置位的操作。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值