有名管道FIFO
有名管道是文件系统中可见的文件,但是不占用磁盘空间,仍然在内存中。可以通过 mkfifo命令创建有
名管道(在共享目录不能使用mkfifo)
有名管道与无名管道一样,在应用层是基于文件接口进行操作
有名管道用于任意进程之间的通讯,当管道为空时,读进程会阻塞。
创建有名管道
mkfifo()
-
在shell中使用mkfifo 命令
mkfifo filename
-
mkfifo 函数 (在代码中使用其创建管道文件)
例子
一个进程写,一个进程读
首先通过命令创建管道文件:fifo
mkfifo fifo
read.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#define PATH_FIFO "/home/yujiu/fifo"
void if_error(int,char*);
int main(){
int res=0;
res=access(PATH_FIFO,F_OK);
if_error