
进程间通信
文章平均质量分 82
SKY丶丿平才
记录嵌入式学习的点点滴滴
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
有名管道和无名管道的介绍
文章目录前言一、无名管道1.概念介绍2.相关函数介绍3.关于无名管道的一些说明4.无名管道编程实战二、有名管道1.概念2.编程实战总结前言在进程间通信的几种方式中,管道可谓是最简单的了,今天我们就来介绍一下两种管道的用法。一、无名管道1.概念介绍无名管道和有名管道是Linux系统内核的特殊文件,用于进程之间的通信。无名管道相当于一个队列结构,fd[1]为写入端(入队),fd[0]为读出端(出队)。其中信息读出后即删除,再次读取时即为下一个信息。2.相关函数介绍函数形式:int pipe..原创 2021-01-07 13:15:44 · 1818 阅读 · 0 评论 -
消息队列概念及相关api的使用
文章目录前言一、消息队列的概念以及相关api的介绍1.概念:2.相关api的介绍:二、简单编程实战1.发送端2.接收端3.实际运行效果总结前言今天来介绍进程间通信中的消息队列一、消息队列的概念以及相关api的介绍1.概念:消息队列,Unix的通信机制之一,可以理解为是一个存放消息(数据)容器。将消息写入消息队列,然后再从消息队列中取消息,一般来说是先进先出的顺序。可以解决两个进程的读写速度不同(处理数据速度不同),系统耦合等问题,而且消息队列里的消息哪怕进程崩溃了也不会消失。最简单的消息内..原创 2020-11-26 13:33:04 · 790 阅读 · 0 评论 -
共享内存及其简单应用
文章目录前言一、消息队列概念以及相关api的介绍1.概念:2.相关api:二、编程实战1.写入端2.读取端总结前言在进程间的通信中,消息队列可以说是一个很重要的一种方式了,它是全双工的,因而能够起到很多作用,下面我们就来具体看看消息队列相关api的使用以及其编程实战。一、消息队列概念以及相关api的介绍1.概念:共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Ca..原创 2020-11-25 20:46:07 · 585 阅读 · 0 评论 -
信号量概念及初级编程实战
标题信号量概念及初级编程实战1相关概念:以一个停车场的运作为例。简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看门人允许其中三辆直接进入,然后放下车拦,剩下的车则必须在入口等待,此后来的车也都不得不在入口处等待。这时,有一辆车离开停车场,看门人得知后,打开车拦,放入外面的一辆进去,如果又离开两辆,则又可以放入两辆,如此往复。在这个停车场系统中,车位是公共资源,每辆车好比一个线程,看门人起的就是信号量的作用。信号量等同于钥匙,只有获取了钥匙才能进入进程,同时在退出进程原创 2020-07-31 23:27:15 · 191 阅读 · 0 评论 -
信号编程实战2
信号编程实战21高级api介绍:高级api与低级api的区别在于高级api不仅能传递信号,还能携带数据。接受信号函数sigaction:int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact);发送信号函数sigqueue:int sigqueue(pid_t pid, int sig, const union sigval value);2具体编程实战:接收端代码:#include &l原创 2020-07-31 17:13:25 · 152 阅读 · 0 评论 -
信号概念及信号编程实战1
信号概念及信号编程实战11相关概念:软中断信号(signal,简称为信号)用来通知进程发生了异步事件。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。注意,信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据。 收 到信号的进程对各种信号有不同的处理方法。处理方法可以分为三类:第一种是类似中断的处理程序,对于需要处理的信号,进程可以指定处理函数,由该函数来处理。第二种方法是,忽略某个信号,对该信号不做任何处理,就象未发原创 2020-07-31 11:00:31 · 223 阅读 · 0 评论 -
无名管道的概念及编程实战
无名管道的概念及编程实战1概念:无名管道无名管道和有名管道是Linux系统内核的特殊文件,用于进程之间的通信。无名管道相当于一个队列结构,fd[1]为写入端(入队),fd[0]为读出端(出队)。其中信息读出后即删除,再次读取时即为下一个信息。相关函数:[1]函数形式:int pipe(int fd[2])功能:创建无名管道文件。无名管道是一个特殊文件,不可由open函数创建。参数:fd[2]有两个成员 fd[0]和 fd[1],他们都是文件描述符。 管道有固定的读端 fd[0]和固定的写端原创 2020-07-30 18:33:36 · 355 阅读 · 0 评论 -
有名管道的概念及创建及使用
有名管道的概念及创建及使用1概念:它是一种文件类型,在文件系统中可以看到。程序中可以查看文件stat结构中st_mode成员的值来判断文件是否是FIFO文件。创建一个FIFO文件类似于创建文件,FIFO文件就像普通文件一样。FIFO中可以很好地解决在无关进程间数据交换的要求,并且由于它们是存在于文件系统中的,这也提供了一种比匿名管道更持久稳定的通信办法。FIFO的通信方式类似于在进程中使用文件来传输数据,只不过FIFO类型文件同时具有管道的特性。在数据读出时,FIFO管道中同时清除数据。在shell中m原创 2020-07-30 18:26:23 · 880 阅读 · 0 评论