管道 管道是Linux支持的最草的IPC(进程间通信)方式,可以分为有名管道和无名管道 无名管道 1. 管道是半双工,只能支持单向流动,两个进程需要建立两个通道来进行通信 2. 无名管道通过pipe()函数创建,只能用于父子进程或者兄弟进程之间 3. 一个进程向管道中写数据,加入到管道缓冲区的尾部, ...
分类:
系统相关 时间:
2019-09-23 09:31:57
阅读次数:
90
头文件 dirent.h 定义了文件类型;enum{ DT_UNKNOWN = 0, //未知类型 DT_FIFO = 1, //first in, first out 类似于管道, 有名管道 DT_CHR = 2, //字符设备文件 DT_DIR = 4, //目录 DT_BLK = 6, //块 ...
分类:
系统相关 时间:
2019-09-11 19:58:00
阅读次数:
129
先说一下有名管道和无名管道用的函数: 无名管道使用的是 pipe() 有名管道使用的是fifo() 无名管道主要用于有血缘关系的两个进程间通信,是内核使用环形队列机制实现,借助内核缓冲区实现的。 有名管道主要用于两个不相干的进程间通信,我认为之所以叫有名管道是因为他们借助mkfifo()函数创建的伪 ...
分类:
其他好文 时间:
2019-09-05 21:42:11
阅读次数:
161
IPC-进程间通信 一、管道 1、概念 2、pipe函数 2.1pipe介绍 2.2 pipe代码示例 父进程向子进程写数据 2.3管道读写行为 2.4管道优劣 2.5 FIFO(有名管道) 二、共享存储映射 1.创建内存映射 2.释放映射区 3.代码示例 通过mmap修改文件内容 4.mmap注意 ...
分类:
系统相关 时间:
2019-07-27 15:51:53
阅读次数:
140
进程间通讯的五种方法:管道,信号量,共享内存,消息队列 套接字 Socket 【1】管道 管道的创建方法:无名管道的创建方法 pipe(int fd[2]) 有名管道的创建方法 int mkfifo(char * path , mode_t mode); 相关问题: 1.有名管道和无名管道的区别?搞 ...
分类:
系统相关 时间:
2019-07-24 20:51:06
阅读次数:
122
IPC(Inter-Process Communication,进程间通信)实现方式 1)管道: - 管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程之间使用(进程的亲缘关系通常是指父子进程关系) 2)有名管道(FIFO): - 有名管道也是半双工的通信方式,但是允许在没有 ...
分类:
其他好文 时间:
2019-06-28 18:20:14
阅读次数:
129
进程线程 1.进程: 进程间通讯(IPC): 1. 种类:无名管道,有名管道,信 号 消息队列,共享内存,信号量 socket 2.目的:实现数据共享 3. 无名管道:内核在物理空间开辟的一段共享缓存,无文件名只用于亲缘之间; 有名管道:内核在物理空间开辟的一段共享缓存,已文件形式操作缓存; 信号: ...
分类:
编程语言 时间:
2019-06-16 11:46:53
阅读次数:
115
一、管道 概念 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信. 先画一幅图帮助大家理解下管道的基本原理 现有2个进程A和B,他们都在内存中开辟了空间,那么我们在内存中再开辟一个空间C,作用是连接这两个进程的。对于 ...
分类:
编程语言 时间:
2019-04-29 00:23:51
阅读次数:
282
常见的进程间通信: 1. 管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。2. 命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。4. 消息队列MessageQueue:消息队列是由消 ...
分类:
系统相关 时间:
2019-01-29 11:01:23
阅读次数:
189
一、引言 FIFO常被称为有名管道,不同于管道(pipe)。pipe仅适用于“有血缘关系”的IPC。但FIFO还可以应用于不相关的进程的IPC。实际上,FIFO是Linux基础文件类型中的一种,是在读写内核通道。 函数原型: 命令: mkfifo + 管道名 例:mkfifo fifo_one 操作 ...
分类:
系统相关 时间:
2019-01-09 11:42:20
阅读次数:
226