您的位置:首页 > 运维架构 > Linux

Linux 管道通讯编程整理

2015-12-27 14:20 459 查看
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文件

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: