更多资料请点击:我的目录
本篇仅用于记录自己所学知识及应用,代码仍可优化,仅供参考,如果发现有错误的地方,尽管留言于我,谢谢。

无名管道(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)相关推荐

  1. linux系统调用创建无名管道,linux 无名管道pipe和有名管道FIFO

    1.管道(pipe) 管道是进程间通信的主要手段之一.一个管道实际上就是个只存在于内存中的文件,对这个文件的操作要通过两个已经打开文件进行,它们分别代表管道的两端.管道是一种特殊的文件,它不属于某一种 ...

  2. Linux内核中无名管道pipe和有名管道fifo的分析

    1.管道(pipe) 管道是进程间通信的主要手段之一.一个管道实际上就是个只存在于内存中的文件,对这个文件的操作要通过两个已经打开文件进行,它们分别代表管道的两端.管道是一种特殊的文件,它不属于某一种 ...

  3. 【Linux系统编程学习】匿名管道pipe与有名管道fifo

    此为牛客Linux C++和黑马Linux系统编程课程笔记. 0. 关于进程通信 Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间.任何一个进程的全局变量在另一个进程中都看不到 ...

  4. 【编撰】linux IPC 002 - 匿名管道PIPE和有名管道FIFO的概念和实例,以及应用比较

    前言:上一节提到IPC的概述,本一节,原文作者比较详细的讨论了,管道的概念和实例和使用场景: 原文作者:郑彦兴 (mlinux@163.com)国防科大计算机学院 http://www.ibm.com ...

  5. linux 有名管道pipe,linux 用無名管道pipe和有名管道fifo實現線程間通信

    1.pipe 用與實現同一個進程下不同線程間的通信(跟IPC進程間通信中的具有血緣關系的進程通信實現方式一樣) #include #include #include #include #include ...

  6. Linux进程间通信之管道(pipe)、命名管道(FIFO)与信号(Signal)

    整理自网络 Unix IPC包括:管道(pipe).命名管道(FIFO)与信号(Signal) 管道(pipe) 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道 ...

  7. Linux 3.进程间通信(IPC)(pipe 无名管道、mkfifo 有名管道、ftok、msgget、msgrcv、msgsnd、msgctl 消息队列)

    Linux 3.进程间通信(IPC) 进程间通信: 进程间方式: pipe 管道(无名管道) 头文件及原型 特点 pipe 示例 FIFO(有名管道) 管道文件的创建 mkfifo 头文件及原型 mk ...

  8. 匿名管道(Pipe)和命名管道(FIFO)

    catalogue 1. pipe匿名管道 2. named pipe(FIFO)有名管道 1. pipe匿名管道 管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入 ...

  9. 进程间的通信方式(二):管道Pipe和命令管道FIFO

    1.概述 管道是最初的Unix IPC通信,可追溯到1973年的Unix第三版.尽管对于许多操作来说很有用,但它们的根本局限于没有名字,只能由亲缘关系的进程使用.这一点随着FIFO的加入System  ...

  10. linux学习---linux基于文件的IPC(匿名管道pipe,命名管道mkfifo,普通文件,socket文件)

    常用的IPC分为两个类别,一是基于文件,而是基于内存 基于文件的分别有匿名管道,有名管道,普通的文件共享,socket文件 基于内存的有普通内存共享(本文章没有介绍),共享内存,共享信号量,消息队列 ...

最新文章

  1. Linux添加用户组和添加用户
  2. 单源最短路径-Dijkstra(迪杰斯特拉算法)
  3. 固定资产多提折旧问题
  4. 天翼云从业认证(4.12) 天翼云医疗行业解决方案
  5. android token机制_对Android 中的 ANR 进行详解
  6. Mahout系列之----共轭梯度预处理
  7. Linux学习资料-万用字符与特殊符号
  8. 应用安全-提权/降权相关整理
  9. final 在java,final 在java中的注意点
  10. atitit.MIZIAN 陕北方言 特有词汇 大词典 attilax 整理 h--n v1 q31.xlsx
  11. python定时重启程序
  12. 统计学习基础(第二版)——引言
  13. TWINCAT2安装问题
  14. C#注入DLL-C#注入器
  15. 用聚宽量化炒股-5获取数据函数-7)获取指数成分股权重函数get_index_weights、获取行业成分股代码函数get_industry_stocks
  16. 【CPU占用高】software_reporter_tool.exe
  17. Redis Setex
  18. 烧一根不均匀的绳要用一个小时,如何用它来判断一个小时十五分钟?
  19. android 删除一个工程,Android Studio该怎样删除项目?
  20. Matlab绘制特殊图形------直方图

热门文章

  1. python-爬虫爬取网页图片
  2. HBuilderX编辑器F11退出全屏无效的解决办法 - 切换免打扰模式
  3. 三星 Watch 5 Pro 和Watch 4 Classic 选哪个好
  4. Linux学习日常-tomcat的下载安装
  5. java replace替换空格_Java 替换空格
  6. Git 配置用户名、密码
  7. 非越狱砸壳方式总结及坑
  8. 树莓派+二自由度云台制作智能小车(三)——小车运动+简单的自动避障
  9. 二叉排序树转换为平衡二叉树
  10. launchctl在Macbook管理定时任务和守护进程