25管道

这节是命名管道FIFO。

如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作,它经常被称为命名管道。
命名管道是一种特殊类型的文件
创建:
命名管道可以从命令行上创建,命令行方法是使用下面这个命令:

  $ mkfifo filename

命名管道也可以从程序里创建,相关函数有:

  int mkfifo(const char *filename,mode_t mode);

打开:用open函数。

命名管道的打开规则:

如果当前打开操作是为读而打开FIFO时
O_NONBLOCK disable:阻塞直到有相应进程为写而打开该FIFO
O_NONBLOCK enable:立刻返回成功
如果当前打开操作是为写而打开FIFO时
O_NONBLOCK disable:阻塞直到有相应进程为读而打开该FIFO
O_NONBLOCK enable:立刻返回失败,错误码为ENXIO
原文地址:https://www.cnblogs.com/DamonBlog/p/4393350.html