软件流控:为什么终端上的TX被阻塞?

软件流控:为什么终端上的TX被阻塞?

^S为什么按下后终端无法发送数据?我一直认为^S终端使用它来告诉 tty 驱动程序 tty 驱动程序不得将数据从应用程序传输到终端(例如,当它忙于处理显示时)。但事实证明,它^S告诉 tty 驱动程序不得将来自终端的输出传输到应用程序。这是一个惊喜。为什么需要这个?

这是通过以下测试发现的:

打开xtermgnome-terminal,输入date,然后^S,然后^M(也称为 Enter),然后稍等一下,然后^Q。结果是显示当前日期,而不是不久前的日期。

答案1

您会看到应用程序被阻止的效果,因为它无法回显您尝试发送给它的数据。

相关内容