嵌入式学习第二阶段Linux开发进程通信
文章平均质量分 54
Linux开发实战
木下 似水
苏州大学大三软件工程在读。
展开
-
Linux进程通信之共享内存
共享内存 共享内存:顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。 不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到他们自己的地址空间中,所有的进程都可以访问共享内存中的地址。如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。 简单的用一张图来理解: 两个进程A,B,他们都有自己的内存空间,相互不影响,但共享内存就像是一个公共的内存区域,通过声明,访问,映射,就可以让原创 2021-04-03 15:30:03 · 212 阅读 · 0 评论 -
Linux进程通信之信号
模板样式,照着这样写,这一节原谅我不能像之前一样讲了,它要用的东西有点多,应用为王,那么多实在是记不住,只能写学着写了暂时: w.c r.c 运行效果: (师上官可编程)原创 2021-04-03 17:52:41 · 68 阅读 · 0 评论 -
Linux进程通信之消息队列
消息队列 这一节,我们讲进程通信的又一种方式,消息队列。 什么是消息队列? 消息队列是消息的链表,存放在内核中并由消息队列标识符表示。 消息队列提供了一个从一个进程向另一个进程发送数据块的方法,每个数据块都可以被认为是有一个类型,接受者接受的数据块可以有不同的类型。 简单用一张图理解: 可以看到,在两个进程之间,可以用之前讲过的两种管道方式通信:一种亲缘关系进程,一种不是亲缘关系进程。 而消息队列由内核管理,就像一个一的链表一样,有自己的id号,通过key键值索引找到,进程A插入一个新的节点,原创 2021-04-02 23:45:44 · 151 阅读 · 0 评论 -
Linux进程通信之命名管道
命名管道 上一节,我们讲了管道的用法,pipe函数。它属于无名管道,可以看到上一节的例子,它只能在父子具有亲缘关系的进程间进行通信,而命名管道呢? FIFO,也称为命名管道,它是一种文件类型。 1、特点 FIFO可以在无关的进程之间交换数据,与无名管道不同。 FIFO有路径名与之相关联,它以一种特殊设备文件形式存在于文件系统中。 mkfifo函数第一个参数为这个管道本身的路径名,第二参数又是模式,没必要记住,用的时候查一下就好了。这里哟们用0600(之前文件操作也用到过的可读可写权限) 这里我们简单的原创 2021-04-02 21:26:52 · 269 阅读 · 0 评论 -
Linux进程通信之管道
一、管道 参考文章: 链接: https://blog.csdn.net/skyroben/article/details/71513385. 管道是基于文件描述符的通信方式。当一个管道建立时,它会创建两个文件描述符fd[0]和fd[1]。其中fd[0]固定用于读管道,而fd[1]固定用于写管道。 ①半双工通信模式。 ②只用于具有亲缘关系的进程之间的通信。 ③可看成是一种特殊的文件。 2.2管道如何实现进程间的通信 pipe函数() (1)父进程创建管道,得到两个⽂件描述符指向管道的两端 (2)父进程f原创 2021-04-01 23:39:01 · 146 阅读 · 0 评论