Linux 管道通讯编程整理

来源:互联网 发布:迪士尼游玩攻略 知乎 编辑:程序博客网 时间:2024/06/06 00:46

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文件



0 0
原创粉丝点击