我正在使用 open()、tcget/setattr()、read() 读取使用嵌入式 linux (angstrom) 的串行设备。我可以很好地读取和写入数据。但是,我正在读取的设备显示的提示不是以换行符终止的。这意味着我无法读取提示,直到我使设备发送一些末尾有换行符的其他输出。基本上,我知道提示字符串(“COM3>”)位于 tty 缓冲区中等待设备发送换行符。 read() 在换行符到达之前不会访问“COM3>”提示字符串。有没有办法改变强制 read() 以在换行符到达之前获取缓冲区中的数据?
谢谢
最佳答案
在默认的规范模式下,输入是行缓冲的。
您可能想要的是将终端设置为“原始”模式 cfmakeraw()
,这将(除其他外)禁用规范模式。
请参阅tcsetattr()
手册页以获取更多信息。
关于c - 如何在换行到达之前读取 tty 设备上的终端输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9222231/