1 .\" This man page is Copyright (C) 1999 Claus Fischer.
2 .\" Permission is granted to distribute possibly modified copies
3 .\" of this page provided the header is included verbatim,
4 .\" and in case of nontrivial modification author and date
5 .\" of the modification is added to the header.
7 .\" 990620 - page created - aeb@cwi.nl
9 .TH FIFO 4 "20 Jun 1999" "Linux Man Page" "Linux Programmer's Manual"
12 fifo \- 先进先出的特殊文件, 又名管道
14 .SH "描述 (DESCRIPTION)"
15 一个 FIFO 特殊 文件 (又名 管道) 同 管道线 相似, 但是 它是 作为 文件 系统 的
16 一部分 访问的. 可以 有 多个 进程 打开它 以供 读写. 当 进程 通过 FIFO 交换 数据
17 的时候, 内核 在内部 传送 所有 数据 而 不会 把它 写入 文件 系统, 也就是说 FIFO
18 特殊 文件 在 文件 系统 中 没有 任何 内容, 文件 系统 项 只是 作为 进程 可以 用
19 文件 系统 中的 一个 名字 来 访问 管道 的 一个 参照点.
21 内核 会 为 至少 有 一个 进程 打开 了的 FIFO 特殊 文件 维护 并且 也只 维护 一个
22 管道 对象. 在 数据 传给 FIFO 之前, FIFO 的 两端 (读 和 写) 必须 同时 打开.
23 一般 来说 打开 FIFO 会 阻塞 直至 另一端 也 打开.
25 一个 进程 可以 以 非阻塞 模式 打开 一个 FIFO. 这种 情况下, 即使 写端 没有 打开,
26 打开 读端 还是 会 成功, 但是, 如果 读端 没有 打开, 打开 写端 会 失败, 并且 得到
27 一个 ENXIO (设备 或 地址 不存在).
29 在 Linux 下, 不管 是 阻塞 还是 非阻塞 模式, 打开 一个 FIFO 用作 读 和 写 都会
30 成功. POSIX 关于 这种 情况 没有 定义. 这个 可以 用来 在 读端 没有 打开 的 情况
31 下 打开 写端. 一个 进程 在 同时 用 FIFO 的 两端 来 和 自己 通信 的 时候 要 特别
34 当 一个 进程 企图 向 读端 没有 打开 的 FIFO 写 数据 的 时候, 进程 会 收到 一个
35 SIGPIPE 信号. FIFO 特殊 文件 可以 用
51 .B 唐友 \<tony_ty@263.net\>
54 .SH "[中国Linux论坛man手册页翻译计划]"
55 .BI http://cmpp.linuxforum.net