【发布时间】:2011-07-28 06:57:56
【问题描述】:
我正在寻找一种工具来一次读取多个 FIFO(可能使用select(2))并输出读取的内容,并在所有 FIFO 关闭时关闭流。更准确地说,program 的行为如下:
$ mkfifo a b
$ program a b > c &
$ echo 'A' > a
$ echo 'B' > b
[1] + done program a b > c
$ cat c
A
B
$ program a b > c &
$ echo 'B' > b
$ echo 'A' > a
[1] + done program a b > c
$ cat c
B
A
我的第一次尝试是使用cat,但第二个示例不起作用(echo 'B' > b 将挂起),因为cat 按顺序读取每个参数,而不是同时读取。在这种情况下使用什么工具正确?
【问题讨论】:
标签: unix select fifo file-descriptor cat