Linux 之 FIFO
正文
FIFO 也被称为命名管道,相较于pipe来说,FIFO可以在非亲缘进程间通信。
FIFO也是由内核维护的队列,虽然有文件路径,但是不属于文件系统中。
函数原型:
#include <sys/types.h>
#include <sys/stat.h>
int mkfifo(const char *filename, mode_t mode);
使用 mkfifo 创建FIFO文件,filename为文件的路径,mode为文件权限,在这里要注意掩码对于创建文件权限的影响。创建失败返回-1,如果FIFO文件已存在,errno值为EEXIST。
父写子读
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<fcntl.h>
#include<errno.h>
int main()
{
umask(0);
if(mkfifo(<