Linux
pty 設備是否有兩個輸入緩衝區?
當終端設備處於cooked模式時,輸入到終端的字節被核心記憶體和處理,一些字節用於行編輯和“消耗”,每次
read
返回一行。但是對於 pty,主 fd 的輸出可以讀取為從 fd 的輸入,反之亦然,所以我的問題是:
pty 設備是否有兩個獨立的輸入緩衝區,與 tty 不同,每個 tty 設備一個緩衝區?
pty 的行為與普通 tty 相同。一個普通的 tty 有輸入(原始和熟模式)和輸出隊列。
使用 pty,tty 輸出隊列連接到主輸入,而 tty 原始輸入連接到主輸出。所以不是隊列多,而是可以把tty輸出隊列看成是master端的輸入。
添加
pty 是一個普通的 tty。通用 tty 部分處理行編輯、原始和熟化模式輸入、Ctrl+S 等流控制等。
每個 tty 都有一個處理實際輸入和輸出的後端。這可以是串列驅動程序。它可以是與鍵盤和 VGA 或幀緩衝區介面的驅動程序。它也可以是 PTY 主控。在 pty 的情況下,tty 輸出可供 master 讀取,而 master 寫入放置在原始輸入隊列中。