Pipe
有哪些方法可以將標準輸出擷取到讀取時自動清除的緩衝區中?
我想將程序中的標準輸出儲存到緩衝區中,並在讀取後清空緩衝區,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