Fifo

在 FIFO/pty 上觸發零字節讀取

  • April 3, 2015

我想知道如何模擬 ^D 的 ICANON 行為:即觸發一個立即數,甚至是零字節,在 FIFO 或 PTY 或套接字等的另一端的程序中讀取。特別是,我有一個程序,其規範是它在標準輸入上讀取一個腳本,直到它讀取零字節,然後讀取輸入以提供腳本,我想自動測試這個功能。

當然,簡單地寫入 FIFO 不會導致正確的事情發生,因為沒有讀取零字節。幫助?

謝謝!

據我所知,這種行為是終端設備獨有的,所以這就是你必須使用的。

ICANON使用從端處於模式的偽 tty ,並將Ctl-d( '\4') 寫入主端。

關於什麼:

echo -n '' > /path/to/the/fifo

echo -n不產生換行符並且''是一個空字元串。所以這應該不會導致沒有任何東西(0字節)被寫入fifo。

您可以將其縮短echo為幾乎沒有:

> /path/to/the/fifo

(如果您小心不要將其誤解為管道其他輸出)

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