【发布时间】:2010-02-21 15:05:27
【问题描述】:
情况如下:某些进程将行写入 fifo 文件(使用 mkfifo 创建)。在我的程序中的某个时刻,我想读取 fifo 中的最后一行,并丢弃所有其他行。仅当 fifo 中的行少于一行时,该过程可能会阻塞。
我想不出一个干净的方法来做到这一点,有什么想法吗?
编辑:写入过程永远不会停止将行写入fifo,我的意思是最后一行是我读取fifo时的最后一行。它后面不一定跟着 EOF。
【问题讨论】:
-
“最后一行”是什么意思?
pipe(又名fifo)是一个流,而不是一个文件,读取的行你不知道它是最后一个还是稍后会提供更多数据。 -
写入过程写入管道的最后一行是最新的信息。这就是为什么当我汇集信息时,我想要最新的。