进程间通信--实时信号和非实时信号的关系(可靠和不可靠信号的关系)

参考博客参考博客的链接

建议先看博客内容,以下只是个人编写的验证规律的代码。

信号的分类

从可靠性分为:可靠和不可靠信号 输入kill -l 命令 查看信号值小于SIGRTMIN的信号都是不可靠信号
与时间的关系:实时和非实时信号
早期Unix系统只定义了32种信号,前32种信号已经有了预定义值,每个信号有了确定的用途及含义,并且每种信号都有各自的缺省动作。如按键盘的CTRL ^C时,会产生SIGINT信号,对该信号的默认反应就是进程终止。后32个信号表示实时信号,等同于前面阐述的可靠信号(即实时信号和可靠信号是一样的)。这保证了发送的多个实时信号都被接收。(引用自顶部链接的博文)

可靠和不可靠信号之间的关系

不可靠信号会发生丢失

下面代码来验证不可靠信号SIGINT会丢失的特点

#include <signal.h>
#include <unistd.h>
#include <stdio.h>

//接受到指定信号就在标准输出打印一个!
void handler(int signo)
{
   
	write(1, "!", 1);//第一个参数是1, 代表向标准输出打印
	sleep(10);//模拟处理程序时间很长的情况
}

int main(int argc, char **argv)
{
   
	int i;
	signal(SIGINT, handler)
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值