linux - 有没有办法像 edev 一样在 libusb 中获取 sysname?

标签 linux linux-device-driver libusb udev

我需要获取设备的设备名称,默认情况下,它在 edev 函数上: https://www.kernel.org/pub/linux/utils/kernel/hotplug/libudev/libudev-udev-device.html#udev-device-get-sysname

udev_device_get_sysname ()

const char *        udev_device_get_sysname             (struct             udev_device *udev_device);
udev_device :

udev device
Returns :

the sys name of the device device

但是设备的所有工作都是在 libusb 中完成的,如果只对 sysname 使用 udev 会很糟糕,而且我在 libusb 中找不到类似的功能真的很奇怪。

有人知道吗?

提前致谢!

最佳答案

最后我以一种非常愚蠢的方式自己解决了它。

我在 libusb 中得到一个设备的 busnum 和 devnum,并在 udev 中迭代所有设备,如果一个设备具有相同的 busnum 和 devnum,则返回它的 sysname。

我通过 udev api 获取 busnum,通过 cat/syspath/devnum 获取 devnum。

Vid Pid 将无法工作,因为相同的设备具有相同的 ID。

希望对您有所帮助。

关于linux - 有没有办法像 edev 一样在 libusb 中获取 sysname?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25054852/

相关文章:

c - 将枚举从内核模块传递到用户空间程序

linux - 可能使用 net_device 取消对私有(private)数据的引用

python - 如何使用python检测多个USB端口并从USB读取数据

python - libusb 1.0 安装,适用于 XP,适用于 noob

iphone - 使用 Objective-C 进行 USB 编程

linux - 亚马逊网络服务 (AWS) - 亚马逊 Linux : How to install libel-dev and g++?

linux - tar.gz 和 tgz 是一回事吗?

linux - 在 Linux 中创建独立的 python 可执行文件

C 程序可以编译,但执行后立即终止

linux - linux中的insmod模块和rpm包有什么区别