无名管道(PIPE)与 有名管道(FIFO)
更多资料请点击:我的目录
本篇仅用于记录自己所学知识及应用,代码仍可优化,仅供参考,如果发现有错误的地方,尽管留言于我,谢谢。
无名管道(PIPE)部分:
(1)无名管道的创建:
头文件: #include <unistd.h>函数原型: int pipe(int pipefd[2]);参数: pipefd: 一个至少具有两个int型数据的数组pipefd[0] :读端的文件描述符,只能读取管道中的信息pipefd[1] :写端的文件描述符,只能往管道中写入信息返回值: 成功:0失败:-1
(2)无名管道的读写与关闭
read() , write() , close() 三个函数。
(3)无名管道的特点:
①只能用于具有血缘关系的父子进程或者兄弟进程通信。
②无名管道读写端分开,不能混淆。
③没有往无名管道中写入数据时,read()会阻塞当前进程,直到有进程往管道中写入数据,read()才解除阻塞。
(4)无名管道的具体用法实例:
无名管道PIPE,进行父子双进程的“双向通信”
双进程无名管道通信应用实例
|
|
=分割线=
|
|
有名管道(FIFO)部分
(1)有名管道的创建:
头文件: #include <sys/types.h>#include <sys/stat.h>函数原型: int mkfifo(const char *pathname, mode_ t mode);参数: pathname: FIFO的文件名(路径名)mode: 文件权限(0777,0666)返回值: 成功: 0失败: -1
(2)有名管道的打开、读写与关闭
open() , read() , write() , close() 四个函数。
(3)有名管道的特点:
①任意多个进程之间都能通信,有无血缘关系都行。
②有名管道不区分读写端,可以任意读写。
③没有往有名管道中写入数据时,read会阻塞当前进程,直到有进程往管道中写入数据,read才解除阻塞。
④有名管道创建成功会在指定的路径下生成管道文件,无名管道没有管道文件(不能在共享文件夹中创建有名管道)。
⑤有名管道可以保证读写的原子性,操作不可以被打断。
(4)有名管道的具体用法实例:
有名管道FIFO,进行双进程的“双向通信”
双进程有名管道通信应用实例
无名管道(PIPE)与 有名管道(FIFO)相关推荐
- linux系统调用创建无名管道,linux 无名管道pipe和有名管道FIFO
1.管道(pipe) 管道是进程间通信的主要手段之一.一个管道实际上就是个只存在于内存中的文件,对这个文件的操作要通过两个已经打开文件进行,它们分别代表管道的两端.管道是一种特殊的文件,它不属于某一种 ...
- Linux内核中无名管道pipe和有名管道fifo的分析
1.管道(pipe) 管道是进程间通信的主要手段之一.一个管道实际上就是个只存在于内存中的文件,对这个文件的操作要通过两个已经打开文件进行,它们分别代表管道的两端.管道是一种特殊的文件,它不属于某一种 ...
- 【Linux系统编程学习】匿名管道pipe与有名管道fifo
此为牛客Linux C++和黑马Linux系统编程课程笔记. 0. 关于进程通信 Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间.任何一个进程的全局变量在另一个进程中都看不到 ...
- 【编撰】linux IPC 002 - 匿名管道PIPE和有名管道FIFO的概念和实例,以及应用比较
前言:上一节提到IPC的概述,本一节,原文作者比较详细的讨论了,管道的概念和实例和使用场景: 原文作者:郑彦兴 (mlinux@163.com)国防科大计算机学院 http://www.ibm.com ...
- linux 有名管道pipe,linux 用無名管道pipe和有名管道fifo實現線程間通信
1.pipe 用與實現同一個進程下不同線程間的通信(跟IPC進程間通信中的具有血緣關系的進程通信實現方式一樣) #include #include #include #include #include ...
- Linux进程间通信之管道(pipe)、命名管道(FIFO)与信号(Signal)
整理自网络 Unix IPC包括:管道(pipe).命名管道(FIFO)与信号(Signal) 管道(pipe) 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道 ...
- Linux 3.进程间通信(IPC)(pipe 无名管道、mkfifo 有名管道、ftok、msgget、msgrcv、msgsnd、msgctl 消息队列)
Linux 3.进程间通信(IPC) 进程间通信: 进程间方式: pipe 管道(无名管道) 头文件及原型 特点 pipe 示例 FIFO(有名管道) 管道文件的创建 mkfifo 头文件及原型 mk ...
- 匿名管道(Pipe)和命名管道(FIFO)
catalogue 1. pipe匿名管道 2. named pipe(FIFO)有名管道 1. pipe匿名管道 管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入 ...
- 进程间的通信方式(二):管道Pipe和命令管道FIFO
1.概述 管道是最初的Unix IPC通信,可追溯到1973年的Unix第三版.尽管对于许多操作来说很有用,但它们的根本局限于没有名字,只能由亲缘关系的进程使用.这一点随着FIFO的加入System ...
- linux学习---linux基于文件的IPC(匿名管道pipe,命名管道mkfifo,普通文件,socket文件)
常用的IPC分为两个类别,一是基于文件,而是基于内存 基于文件的分别有匿名管道,有名管道,普通的文件共享,socket文件 基于内存的有普通内存共享(本文章没有介绍),共享内存,共享信号量,消息队列 ...
最新文章
- Linux添加用户组和添加用户
- 单源最短路径-Dijkstra(迪杰斯特拉算法)
- 固定资产多提折旧问题
- 天翼云从业认证(4.12) 天翼云医疗行业解决方案
- android token机制_对Android 中的 ANR 进行详解
- Mahout系列之----共轭梯度预处理
- Linux学习资料-万用字符与特殊符号
- 应用安全-提权/降权相关整理
- final 在java,final 在java中的注意点
- atitit.MIZIAN 陕北方言 特有词汇 大词典 attilax 整理 h--n v1 q31.xlsx
- python定时重启程序
- 统计学习基础(第二版)——引言
- TWINCAT2安装问题
- C#注入DLL-C#注入器
- 用聚宽量化炒股-5获取数据函数-7)获取指数成分股权重函数get_index_weights、获取行业成分股代码函数get_industry_stocks
- 【CPU占用高】software_reporter_tool.exe
- Redis Setex
- 烧一根不均匀的绳要用一个小时,如何用它来判断一个小时十五分钟?
- android 删除一个工程,Android Studio该怎样删除项目?
- Matlab绘制特殊图形------直方图