linux系统中的实时信号

标准信号的局限性:

1. 阻塞信号可能会丢失。当一个信号阻塞时,这个信号即使多次发送给进程,也被执行一次信号句柄。

2. 信号交付没有携带与信号有关信息。接受到信号的进程无法区分同种信号的不同情况,也不知道信号从何而来。

3. 信号的交付没有优先级。当有多个信号悬挂与一个进程时,交付的顺序不确定。

实时信号对标准信号做了一下扩充,有以下的特点:

1.增加了信号从SIGRTMIN到SIGRTMAX的实时信号,可以通过sysconf(_SC_RTSIG_MAX)获得当前操作系统支持的实时信号的个数。

2. 实时信号在队列中并按顺序交付。同一类型的实时信号将按顺序交付给进程。

3. 实时信号可以携带额外的信息。

4. 进程能够通过专门的函数更快的回复信号。

5. 当定时器到期、空消息队列有消息到达、有异步IO完成时,信号能够及时交付给进程。

通过设置sigaction结构体中的sa_flags标志为SA_SIGNFO实现实时信号句柄的安装。此时的信号句柄原型为void func(int signo,siginfo_t *i

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值