Linux

pty 設備是否有兩個輸入緩衝區?

  • October 3, 2018

當終端設備處於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 寫入放置在原始輸入隊列中。

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