信号的可靠与不可靠以及信号的含义
信号有丢失.(信号压缩)
由于历史的缘故:信号有压缩的需求.
可靠信号(实时信号)与不可靠信号(非实时信号).
早期信号 1-31 31个信号, 不可靠(与系统有关).(会有信号丢失)
后期信号34-64 31个信号,可靠信号(用户信号) (不会出现信号丢失)
例子1:信号丢失
#include<stdio.h>
#include<unistd.h>
#include<signal.h>
void deal()
{
printf(“信号发生!\n”);
}
voidmain()
{
signal(SIGINT,deal);
while(1);
}
#include<stdio.h>
#include<unistd.h>
#include<signal.h>
void main()
{
inti;
for(i=0;i<5;i++)
{
kill(pid,SIGINT); //注pid为上面程序的进程id,此处用pid代替
}
}
该例子会出现一个问题:程序发生5次信号,但程序就只接受到了2次信号,因为发送的是非实时信号(与系统有关),系统压缩了同样的信号。
例子2:信号不丢失
#include<stdio.h>
#include<unistd.h>
#include<signal.h>
void deal()
{
printf(“信号发生!\n”);
}
voidmain()
{
signal(35,deal);
while(1);
}
#include<stdio.h>
#include<unistd.h>
#include<signal.h>
void main()
{
inti;
for(i=0;i<5;i++)
{
kill(pid,35); //注pid为上面程序的进程id,此处用pid代替
}
}
此程序就不会出现信号丢失,会打印5次信号发生,因为发送的信号为实时信号时用户信号,系统不会压缩出现次数过多的同一个信号。
分享到:
相关推荐
在linux平台上仿照Qt实现的纯C语言信号和操,采用事件驱动。本代码采用libev进行测试,亦可集成在有事件驱动(epoll,select)中。
仓库管理问题,Linux0.11 信号量的实现与应用。
Linux信号灯C语言编程示例 (包含信号灯回滚,信号等取值和初始化操作) 文件由两部分组成 分别是.h .c 文件,可以直接给C++程序调用
linux下C语言实现https请求源码
linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号...
说明:工程分为两个。一个是Linux C语言编写的MQTT客户端,另一个是websocket编写的MQTT客户端,先运行Linux的,再运行websocket就出实验现象了。(发布的主要是温湿度数据、继电器控制状态、GPS定位系统等等)
嵌入式Linux C语言应用程序设计:嵌入式Linux C语言应用程序设计
linux系统c语言实现爸爸儿子女儿简单消费者问题苹果橘子拿与放问题, 资源共享,线程互斥,使用简单的无名信号量解决
linux c语言实现websocket编程,亲测可以运行,linux下直接编译就可以。代码中文件较多,结构比较清晰,未加注解。若有疑问请留言。
基于Linux使用C语言实现的一个串口通讯Demo,实测可用。
linux C语言学习 linux c 基础 linux c 基础 linux c 基础 linux c 基础
Linux_信号说明列表 信号介绍 信号处理
《嵌入式Linux C语言应用程序设计》读书笔记《嵌入式Linux C语言应用程序设计》读书笔记《嵌入式Linux C语言应用程序设计》读书笔记《嵌入式Linux C语言应用程序设计》读书笔记《嵌入式Linux C语言应用程序设计》...
Linux内核信号量分析
linux信号量机制学习linux信号量机制学习linux信号量机制学习linux信号量机制学习linux信号量机制学习linux信号量机制学习linux信号量机制学习linux信号量机制学习linux信号量机制学习linux信号量机制学习linux信号...
linux下信号量控制同步问题,已经通过测试,很经典
本文是重点讲解信号处理整个处理的机制详细分析,Linux内核信号处理机制介绍.doc
linux 信号机制
word文档格式, 详细描述linux在实现信号机制的各个方面
适用于linux环境的C语言程序,获取网卡MAC地址,附详细操作说明,两种方式写成的程序,都能达到所需功能,测试可用。