博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

25管道

Posted on 2015-04-05 01:00  勇敢的鑫  阅读(131)  评论(0编辑  收藏  举报

这节是命名管道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