Linux 管道通讯编程整理

5.1创建无名管道

5.1.1 函数名

pipe

5.1.2 函数原形

int pipe(int pipefd[2])

5.1.3 函数功能

创建单向数据从传输的管道,用于进程间的通信

5.1.4 所属头文件

<unistd.h>

5.1.5 返回值

成功:返回0  失败:返回:-1

5.1.6参数说明

pipefd[0]:指向读端,存储读端文件描述符fd

pipefd[1]:指向写端,存储写端文件描述符fd

5.1.7 注意

为了使父子进程通信,必须将pipe在进程创建fork之前创建,否则,父进程和子进程都各自创建一个管道pipe,相互独立,所以达不到通信的目的

5.1.8 demo



5.2创建有名管道

5.2.1 函数名

mkfifo

5.2.2 函数原形

int mkfifo(const char *pathname,mode_t mode)

5.2.3 函数功能

创建一个fifo文件(有名管道)

5.2.4 所属头文件

<sys/types.h>  <sys/stat.h>

5.2.5 返回值

成功:返回0  失败:返回-1

5.2.6 参数说明

pathname:要创建的fifo文件的名字(带路径)、

mode:创建的fifo文件的访问权限 (见open,例:666)


5.3删除有名管道

5.3.1 函数名

unlink

5.3.2 函数原形

int unlink(const char *pathname)

5.3.3 函数功能

删除文件

5.3.4 所属头文件

<unistd.h>

5.3.5 返回值

成功:放回0  失败:返回-1

5.3.6 参数说明

pathname:待删除文件的名字(含路径)

5.3.7 demo


一旦运行写进程,那么该进程处于阻塞的状态,直到有进程读取该fifo文件



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值