1.创建无名管道 int pipe(int fd[2]);
成功返回0;失败返回EOF
示例 int fd[2];
ret=pipe(fd);
fd包含两个元素的整形数组,用来保存文件描述符
fd[0]读管道
fd[1]写管道
父进程创建无名管道,子进程继承
write(fd[1],writebuf,sizeof(writebuf));
read(fd[0],readbuf,128);
2.创建有名管道 int mkfifo(const char *path,mode_t mode);
成功返回0,失败EOF
示例 int ret;
ret=mkfifo("./myfifo",0777);
mkfifo使用方法与open类似,有名管道创建完后,在当前目录中生成文件。
这个文件不占用磁盘空间,只有innode号,和套接字、字符设备文件、块设备文件一样。普通文件,符号链接文件及目录文件不仅有inode号,还占用磁盘空间。
用open函数打开管道文件 fd=open("./myfifo",O_WRONLY);