#include <unistd.h>
int pipe(int fd[2]);//提供单向数据流,有些版本的Unix(SVR4)提供全双工管道,管道的最常见用途是用在各种shell中,这种情况下半双工就够了
该函数返回两个文件描述符:fd[0]和fd[1],前者打开来读,后者打开来写。
#include <sys/types.h>
#include <sys/stat.h>
int mkfifo(const char *pathname, mode_t mode);
mkfifo函数已隐含指定O_CREAT|O_EXCL,也就是说,它要么创建一个新的FIFO,要么返回一个EEXIST错误,如果不希望创建一个新的FIFO,那么久改调用open而不是mkfifo。要打开一个已存在的FIFO或者创建一个新的FIFO,应该先调用mkfifo,根据返回值来调用open。对管道或FIFO调用lseek,会返回ESPIPE错误。
管道和FIFO的额外属性