我正在将Win32串口类转换为Linux(Ubuntu)此串口类所需的功能之一是在串口缓冲区中“查看”以查看在读取串行端口之前,许多字节正在串口上等待。获取在读取之前在串口上等待的字节数,linux
在这种修脚的情况下,我只需要知道端口上是否有任何字节,然后再尝试读取它。
在Windows中我使用COMSTATS,但我似乎无法在Linux中找到类似的功能。
我的问题是:
在Linux上如何读取字节/字符等待一个串行端口的数量,而不从串口缓冲器中移除呢?
我正在将Win32串口类转换为Linux(Ubuntu)此串口类所需的功能之一是在串口缓冲区中“查看”以查看在读取串行端口之前,许多字节正在串口上等待。获取在读取之前在串口上等待的字节数,linux
在这种修脚的情况下,我只需要知道端口上是否有任何字节,然后再尝试读取它。
在Windows中我使用COMSTATS,但我似乎无法在Linux中找到类似的功能。
我的问题是:
在Linux上如何读取字节/字符等待一个串行端口的数量,而不从串口缓冲器中移除呢?
您需要使用一个ioctl
ioctl(serial_fd, FIONREAD, &bytes_avail);
这份文件是非常值得一读,因为这等诸多问题(规范与原始模式等)
在C语言中,你可以用一个ioctl想问:
int bytes_avaiable;
ioctl(serial_file_descriptor, FIONREAD, &bytes_available);