我有一个设备,它使用所有字符符号来通信。我知道传输消息的固定长度,我正在使用termio.h与此设备通信。
问题是,当其中一个符号数组为空符号(\0)时,我无法读取整个消息。Read函数此时停止,我的消息不完整。这很奇怪,因为我可以写(使用函数write())任意多的空符号。
我知道每个字符串都应该以空结尾,但我需要阅读这些空符号,有没有办法做到这一点?
谢谢!

最佳答案

在下面的非规范模式a中打开串行端口
选项c_lflag&=~ICANON;
如果没有此标志,则默认情况下串行端口以规范模式打开。
在非规范模式下,您将接收“原始”字节,我猜这是您需要的
正在接收各种字符。

关于c++ - 从带有POSIX的SERIAL中也读取null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18124350/

10-11 22:33
查看更多