美文网首页
[Linux进程间通信]FIFO

[Linux进程间通信]FIFO

作者: longtzw | 来源:发表于2013-09-21 16:30 被阅读0次

作用:用于在不相关的进程间交换数据

创建FIFO

int mkfifo(const char *pathname, mode_t mode)
成功返回0,出错返回-1

当打开一个FIFO时,非阻塞标志(O_NONBLOK)产生下列影响:

  • 在一般情况中(没有指定O_NONBLOCK),只读open要阻塞到某个其他
    进程为写而打开此FIFO。类似地,只写open要阻塞到某个其他进程为读
    而打开它。

  • 如果指定了O_NONBLOCK,则只读立即返回。但是,如果没有进程已
    经为读而打开一个FIFO,那么只写open将出错返回-1,其errno是ENXIO。
    类似于管道,若用write写一个尚无进程为读而打开的FIFO,则产生信号
    SIGPIPE。若某个FIFO的最后一个写进程关闭了该FIFO,则将为该FIFO
    的读进程产生一个文件结束标志

FIFO有下面两种用途

  • FIFO由shell命令使用以便将数据从一条管道线传送到另一条,为此无需创
    建中间临时文件
  • FIFO用于客户进程-服务器进程应用程序中,以在客户进程和服务器进程
    之间传递数据

常量PIPE_BUF说明了一次性写到FIFO的最大数据量,以确保操作的原子性

相关文章

  • [Linux进程间通信]FIFO

    作用:用于在不相关的进程间交换数据 创建FIFO 当打开一个FIFO时,非阻塞标志(O_NONBLOK)产生下列影...

  • 8.ipc

    进程间通信 Linux中的进程间通信主要有:管道、FIFO、消息队列、信号量、共享存储以及网络IPC中的套接字。 ...

  • Linux进程间通信-fifo测试

    1:fifo原因 有名管道 文件:安全性,不自动化,数据不完整没有保障;锁的机制 PHP开发网站的时候,登录,se...

  • LInux进程之间的通信-有名管道(FIFO)

    Linux进程间的通信-有名管道FIFO 管道的通信只能存在于具有亲缘关系的进程之间,比如fork出来的子进程与父...

  • Linux 进程之间的通信方式

    linux使用的进程间通信方式 管道(pipe)、流管道(s_pipe)、无名管道(FIFO)、 套接字 sock...

  • Go:Unix域套接字

    关于同一个Linux主机上的进程之间的进程间通信(IPC)方式,有多个选择:例如FIFO、管道、共享内存、套接字等...

  • 第二章-IPC机制

    IPC基础-Linux 中的进程间通信机制 pipe 管道:内核管理的一个缓冲区,只能传递无 FIFO 命名管道 ...

  • Linux进程间通信 -- 匿名管道和FIFO

    Linux进程间通信 -- 匿名管道和FIFO 匿名管道 管道包括三种: 匿名管道pipe. 特点:一是单工(单项...

  • Linux 进程间通信(2) -- fifo有名管道

    进程间通信(IPC - InterProcess Communication) 通信的方式有很多: 文件, 管道,...

  • 进程间的通信

    进程间的通信主要分为本机器进程间的通信和不同机器间进程的通信。本文主要描述本机进程间的通信。 一、传统Linux的...

网友评论

      本文标题:[Linux进程间通信]FIFO

      本文链接:https://www.haomeiwen.com/subject/yjuftttx.html