c++ pipe 管道_c++笔记(无名管道)

概述

管道也叫无名管道,它是UNIX系统IPC(进程间通信)的最古老形式,所有的UNIX系统都支持这种通信机制

特点

双半工,数据在同一时刻只能在一个方向上流动

数据只能从管道一端写入,从另一端读出

写入管道中的数据遵循先入先出的规则

管道所传送的数据是无格式的,这要求管道的读出方与写入方要事先约定好数据格式,如多少字节算一个消息等

管道不是普通文件,不属于某个文件系统,只存在于内存中

管道在内存中对应一个缓冲区,不同的系统大小不一定相同

管道读数据是一次性操作,数据一旦被读走,它就从管道中被抛弃,释放空间以便写入更多数据

管道没有名字,只能在具有公共祖先的进程(父进程与子进程,或两个兄弟进程,具有亲缘关系)之间使用

管道是一种特殊的文件,在应用层体现为两个打开的文件描述符

cb2fa8fb05dc06457683ef951e5f88de.png

pipe 函数

#include<unistd.h>
int pipe(int pipefd[2]);

// 功能   创建无名管道
// 参数   pipefd[2]  int 类型数组 用来存放管道文件描述符
//        当一个管道建立时,会创建两个文件描述符 fd[0] 和 fd[1]。 其中 fd[
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值