c++ - 在 C++ 中接收 USB 设备插入的通知/事件/信号

标签 c++ c linux usb

我找了好久,没找到这个问题的答案。我正在尝试接收特定 USB 设备的连接通知。这是我所知道的:

我正在运行 3.2 版的 Linux 内核。我有识别 USB 设备所需的 ID。我已经创建了一个用于读取和写入设备的内核模块。内核模块已经过测试并且可以正常工作。内核模块创建/dev/Component#。

我正在尝试编写一个程序来通知 USB 设备连接事件,因此不需要遍历/dev/Component# 并检查文件是否存在。我希望已经存在一个信号/通知/事件。我看过 libusb,但我的理解是您实际上只是在创建一个读取所有设备的循环。我考虑过添加一个系统调用,但重新编译内核并不是一个真正的选择。

如有任何帮助,我们将不胜感激。

谢谢,

SgtSquatlow

最佳答案

有一个使用 dbus 的解决方案。首先,如果尚未安装库 libdbus-glib(在 Debian/Ubuntu 上,该包称为 libdbus-glib-1-dev)。然后就可以顶一个程序了here , 像这样编译程序:

gcc -o dbus-usb dbus-usb.c $(pkg-config --libs --cflags dbus-glib-1)

关于c++ - 在 C++ 中接收 USB 设备插入的通知/事件/信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14144781/

相关文章:

c++ - Qt Json序列化

c++ - 我不明白的指针函数;(

c++ - While循环导致文件崩溃

无法获取类型为 'float' 的右值的地址

linux - Linux内核虚拟内存中的直接映射

linux - ARM 不会产生未对齐的异常

具有镜像层次结构的 C++ 双重分派(dispatch)

c - Dev-c++编译错误对象

c - 将结构内部使用的 void * 指针类型转换为 int * 指针时出现问题!

android - 即使在Android内核中启用usbmon后也没有USB总线文件?