c - 获取 ACM 驱动程序赋予 USB 的节点名称

标签 c linux usb device-driver

我有两个 ACM 驱动程序可以识别的 USB 设备,我正在用 C 语言开发一个程序来与它们进行通信。由于每个命令的命令都不同,因此我需要知道每个命令的名称(usb/acm/X)。

如何在给定供应商 ID 和产品 ID 的情况下获取此名称?我尝试过解析 dmesg 文本,但在某些情况下,我可能会依次看到两行“ttyACMX: USB ACM device”。 我可以解析每个设备在 dmesg 中显示其名称的顺序,并在“ttyACMX”中采用相同的编号,但这迫使我还要解析断开连接消息,一切都变得有点脏。

我已经看到我需要的信息位于为每个设备创建的 tty_driver 结构中,并且我确信我可以比解析 dmesg 更容易地获得此信息。

有人能指出我正确的方向吗?

最佳答案

libudev (C) 可能是一个解决方案,还可以查看 ModemManager 守护进程的源代码(C,基于 glib)

关于c - 获取 ACM 驱动程序赋予 USB 的节点名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18567918/

相关文章:

linux - Unoconv 作为 apache 用户无法创建文件

Linux搜索单词并显示整行

c# - 如何从 C# 应用程序检测 USB 驱动器盘符?

cocoa - 如何在 OS X 中与 GPIO USB 设备通信?

条件表达式

c - 意外标记附近的语法错误 '('

linux - groovy "...".execute() 在 windows 上工作但在 linux 上失败

C 编程 : What happens if I increment an Arraypointer while passing it as an argument

c - 从文件读入数组并使用数组中的数字执行操作

android - 从 Android USB 附件读取会抛出 ENODEV IOException