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