c-如何在换行符到达之前读取tty设备上的终端输入



我正在使用open()、tcget/setattr()和read()读取使用嵌入式linux(angstrom)的串行设备。我能很好地读写数据。但是,我正在读取的设备显示一个没有以换行符终止的提示。这意味着,在我让设备发送其他末尾有换行符的输出之前,我无法读取提示。基本上,我知道提示字符串("COM3>")位于tty缓冲区中,等待设备发送新行。在换行符到达之前,read()不会访问"COM3>"提示字符串。有没有办法在换行符到达之前更改force read()以获取缓冲区中的数据?

感谢

在默认的规范模式中,输入是行缓冲的。

您可能想要的是使用cfmakeraw()将终端设置为"原始"模式,这将禁用规范模式。

有关详细信息,请参阅tcsetattr()手册页。

C的好处之一是有一百种方法可以做任何事情。

如果是我,我不会用ioctl。

一个简单的cMyChar=getc(STDIN)会做得很好。

相关内容

  • 没有找到相关文章

最新更新