我正在尝试编写一个显示为vt100终端的远程shell程序+模拟器。我已经完成了在连接的接收端编写终端仿真器并使用ssh进行测试 - 一切正常。但是现在我在编写接受主机连接的远程shell守护进程时遇到了一些困难。
我已经初始化了一个伪终端(pty)并成功将从属端连接到一个bash shell。但是,每当终端进入应用程序模式(像vim这样没有提示的应用程序)时,仍然需要在收到响应之前发送换行符。例如,如果我在vim中并输入“dd”来删除一行,则在按Enter键之前没有任何反应。然后发生“dd”的影响和随后的返回(删除的行+光标移动到下一行)。在服务器端调试之后,我发现伪终端的主端在正确的时间获得所有密钥,但是从端在收到换行之前不会响应。
我的问题是: 如何从slave bash程序中获得即时响应,而不是让它等待直到收到换行?
很抱歉,如果我不清楚/做错了什么。这是我的第一个问题。 :)