我正在将Win32串行类转换为Linux(Ubuntu)这个串行类所需的功能之一是“查看”串行缓冲区,以查看在读取串行端口之前在串行端口上等待了多少字节 .
在这种修脚情况下,我只需要知道端口上是否有任何字节,然后再尝试读取它 .
在Windows中我使用COMSTATS,但我似乎无法在Linux中找到类似的功能 .
我的问题是:
在Linux上如何读取等待串口的BYTES / chars数量而不将其从串口缓冲区中删除?
你需要使用ioctl
ioctl(serial_fd, FIONREAD, &bytes_avail);
对于该文档和许多其他问题(规范与原始模式等),本文档非常值得一读 .
http://www.cmrr.umn.edu/~strupp/serial.html
在C语言中,您可以使用ioctl来询问:
int bytes_avaiable; ioctl(serial_file_descriptor, FIONREAD, &bytes_available);
2 回答
你需要使用ioctl
对于该文档和许多其他问题(规范与原始模式等),本文档非常值得一读 .
http://www.cmrr.umn.edu/~strupp/serial.html
在C语言中,您可以使用ioctl来询问: