Pipe

有哪些方法可以將標準輸出擷取到讀取時自動清除的緩衝區中?

  • February 13, 2018

我想將程序中的標準輸出儲存到緩衝區中,並在讀取後清空緩衝區,FIFO 樣式。

我知道我可以通過管道傳輸標準輸出,但管道/文件將繼續增長並包含我已經讀取的數據。我只想要新鮮的數據。

command > named_pipe &

是否有任何其他內置方法,類似於網路套接字中的緩衝區,我可以將數據重定向到?

我不明白命名管道如何不能解決您的問題。此範例使用兩個 shell 介面,shell_1並且shell_2. 我將 I/O 縮進 / 縮進shell_2多於 of 的縮進,shell_1以嘗試區分從哪個 shell 發生的 I/O。

$ mkfifo my_pipe
(shell_1) $ echo hi > my_pipe # Blocks waiting for a reader
   (shell_2) $ cat my_pipe # Unblocks shell_1
   hi
   (shell_2) $ cat my_pipe # blocks -- does not print "hi" again
(shell_1) $ echo bye > my_pipe # Unblocks shell_2
   bye # Printed by shell_2

引用自:https://unix.stackexchange.com/questions/423881