【问题标题】:Get the count of bytes waiting on a serial port before reading, linux在读取之前获取串行端口上等待的字节数,linux
【发布时间】:2011-05-05 15:21:04
【问题描述】:

我正在将一个 Win32 串行类转换为 Linux (Ubuntu) 这个串行类所需的功能之一是“窥视”串行缓冲区,以查看在读取串行端口之前有多少字节在串行端口上等待。

在这种修脚情况下,我只需要在尝试读取端口之前知道端口上是否有任何字节。

在 Windows 中,我使用了 COMSTATS,但在 Linux 中似乎找不到类似的功能。

我的问题是:

在 Linux 上,如何在不从串行端口缓冲区中删除它们的情况下读取串行端口上等待的字节/字符数量?

【问题讨论】:

  • 我正面临相反的问题,(从 Linux 转换到 Windows),你有关于 COMSTATS 的链接、代码或文档吗?

标签: linux serial-port


【解决方案1】:

你需要使用ioctl

ioctl(serial_fd, FIONREAD, &bytes_avail);

这篇文档非常值得一读,因为它和许多其他问题(规范与原始模式等)

http://www.cmrr.umn.edu/~strupp/serial.html

【讨论】:

    【解决方案2】:

    在 C 语言中,您可以使用 ioctl 来询问:

    int bytes_avaiable;
    ioctl(serial_file_descriptor, FIONREAD, &bytes_available);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多