【问题标题】:how to get bus and dev info using c如何使用 c 获取总线和开发信息
【发布时间】:2014-02-18 09:18:08
【问题描述】:

我想使用 C 语言读取连接到 PC 的 USB 串行设备的总线和开发。我怎样才能得到它,请帮助我...示例我想从下面读取 Trust International USB 设备总线信息和设备信息。

lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 014: ID 15d9:0a4f Trust International B.V. 
Bus 001 Device 009: ID 046d:c312 Logitech, Inc. DeLuxe 250 Keyboard
Bus 001 Device 004: ID 0cf3:9271 Atheros Communications, Inc. AR9271 802.11n
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

如何使用C语言?

【问题讨论】:

标签: c serial-port usb


【解决方案1】:

在标准 C 中没有办法做到这一点,因为标准 C 没有提到 USB。

您需要使用特定于平台的代码,这使其非常适合将其包装到库中。

这样一个非常常用的库是libusb。是这样描述的:

libusb 是一个 C 库,可让应用程序轻松访问许多不同操作系统上的 USB 设备。

【讨论】:

    【解决方案2】:

    您可以从 popen() 方法执行 lsusb,然后将 fgets() 作为字符数组执行 lsusb 报告的各个行。

    然后使用 sscanf() 或您选择的任何其他字符串操作函数从每个数组中提取总线和设备 ID,因为总线和设备 ID 的位置始终是固定的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多