pty 设备有两个输入缓冲区吗?

炸鱼薯*_*德里克 3 linux terminal tty pty

当终端设备处于熟模式时,输入到终端的字节被内核缓存和处理,一些字节用于行编辑和“消费”,使一次read返回一行。

但是对于 pty,输出到 master fd 可以作为从 slave fd 的输入读取,反之亦然,所以我的问题是:

pty 设备是否有两个独立的输入缓冲区,不像 tty,每个 tty 设备一个缓冲区?

Ral*_*edl 5

pty 的行为与普通 tty 相同。普通 tty 具有输入(原始和熟模式)和输出队列。

使用 pty,tty 输出队列连接到主输入,tty 原始输入连接到主输出。所以不是队列多了,是你可以把tty输出队列当成master端的输入。

添加

pty 是一个普通的 tty。通用 tty 部分处理诸如行编辑、原始和熟模式输入、Ctrl+S 等流控制等内容。

每个 tty 都有一个处理实际输入和输出的后端。这可以是串行驱动程序。它可以是与键盘和 VGA 或帧缓冲区接口的驱动程序。它也可以是 PTY 母版。在 pty 的情况下,tty 输出可供 master 读取,并且 master 写入放置在原始输入队列中。