在不完整的读取访问后将数据保留在命名管道中

在不完整的读取访问后将数据保留在命名管道中

先决条件:

$ mkfifo pipe1

如果将几行放入管道1

$ (echo line 1; echo line 2) > pipe1

所有行都可以在另一个终端中读取

$ cat pipe1
line 1
line 2

到目前为止还好。

如果代替后者执行了几个部分读取

$ head -n 1 pipe1; head -n 1 pipe1
line 1

然后只有第一行数据通过管道传输到管道1返回(由第一个头-n 1);其余数据似乎丢失了,第二个读取访问挂起,因此等待可用的(新)数据管道1

如何

设置命名管道并将内容通过管道传输到其中,以便可以进行多次连续的部分读取?

换句话说,如何获得这个:

$ head -n 1 pipe1; head -n 1 pipe1
line 1
line 2

相关内容