FIFO - Linux手册页
时间:2019-08-20 18:01:53 来源:igfitidea点击:
Linux程序员手册 第7部分
更新日期: 2017-11-26
名称
fifo-先进先出特殊文件,命名管道
说明
FIFO特殊文件(命名管道)类似于管道,不同之处在于它是作为文件系统的一部分进行访问的。它可以通过多个进程打开以进行读取或写入。当进程通过FIFO交换数据时,内核会在内部传递所有数据,而无需将其写入文件系统。因此,FIFO特殊文件在文件系统上没有内容。文件系统条目仅用作参考点,以便进程可以使用文件系统中的名称访问管道。
内核为至少由一个进程打开的每个FIFO特殊文件维护一个管道对象。必须先在两端打开FIFO(读取和写入),然后才能传递数据。通常,打开FIFO块,直到另一端也打开。
进程可以以非阻塞模式打开FIFO。在这种情况下,即使没有人在写侧打开过,只读打开也成功,并且ENXIO(没有这样的设备或地址)打开只写失败,除非另一端已经打开。
在Linux下,打开FIFO进行读写将在阻塞和非阻塞模式下都成功。 POSIX未定义此行为。在没有可用的读取器的情况下,可用于打开FIFO进行写入。使用连接两端进行通信的进程应该非常小心,以免发生死锁。
备注
有关FIFO上I / O语义的详细信息,请参见pipe(7)。
当进程尝试写入另一端未打开供读取的FIFO时,将向该进程发送SIGPIPE信号。
FIFO特殊文件可由mkfifo(3)创建,并由ls -l表示,文件类型为aqpaq。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。