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

2024-01-22

我已经寻找了一段时间,但一直无法找到这个问题的答案。我正在尝试接收特定 USB 设备的连接通知。这是我所知道的:

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

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

任何帮助将不胜感激。

Thanks,

斯夸特洛中士


有一个使用dbus的解决方案。首先,您应该安装 libdbus-glib 库(在 Debian / Ubuntu 上,该软件包称为libdbus-glib-1-dev)如果尚未安装。然后你就可以峰值一个程序here https://stackoverflow.com/questions/11011603/dbus-glib-bindings-udisks-error,像这样编译程序:

gcc -o dbus-usb dbus-usb.c $(pkg-config --libs --cflags dbus-glib-1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在c++中接收USB设备插入的通知/事件/信号 的相关文章

随机推荐

  • Node.js、socket.io https 连接

    服务器端代码 var io require socket io listen 8150 io sockets on connection function socket 客户端代码 var socketIO io 8150 socketIO
  • 无法在类库包中的 Entity Framework 7 beta4 上运行迁移

    我无法在类库包中执行迁移命令 我的 dnvm 版本是 来自 global json sdk version 1 0 0 beta5 12021 我正在将其导入到我的项目 JSON 中 dependencies EntityFramework
  • TypeScript 映射类型:获取数组的元素类型

    假设有一个容器类型 其数组属性为未知 生成类型T1 T2等 短T interface MultiContainer Item1 T1 Item2 T2 是否可以使用派生以下类型映射类型 https www typescriptlang or
  • Android SQLite 数据库单元测试

    我是 Android 应用程序开发的新手 我刚刚制作了一个笔记应用程序 我想对数据库的 insertNote readNote 和 updateNote 方法进行单元测试 我该怎么办 这是我的数据库的代码 谢谢 public class D
  • 迁移文件中 Django 的“primary_key”字段中的“serialize=False”是什么意思?

    我找不到原因serialize False在 Django 文档或源代码中的主键字段上设置 有什么特殊原因要设置吗 Thanks Azd325 听起来很简单 该字段不会成为序列化对象的一部分 不过 我猜您的问题与正在迁移的模型有关 并且生成
  • 如何将 IntelliJ IDEA 随机开放端口仅绑定到本地主机?

    当我在 macOS 上运行 IntelliJ IDEA 2021 1 2 终极版或社区版 时 我观察到所有网络接口 eth0 lo 上打开了 3 个随机端口 一个随机端口由 idea 进程打开 另外两个端口由 IntelliJ IDEA 启
  • AngularJS 路由控制器未重新加载

    我有一个非常简单的 AngularJS 应用程序 其中有两条路线 search results 当我从一条路线导航到另一条路线时 一切都按我的预期进行 获取所需的任何资源并完美显示内容 问题是 当我从一条路线导航到同一条路线 即 resul
  • 扫描附近的蓝牙设备

    如果手机打开了蓝牙 应用程序可以读取附近可发现设备的 ID 列表吗 如果是这样 哪个函数返回这样的列表 Thanks 看一看here http developer android com guide topics wireless blue
  • htaccess 替换查询和重定向中的字符

    我需要将查询字符串中的 替换为 而不是重定向 site com abc def to site com search php q abc def 我试过这个 RewriteRule search php q 1 2 R 301 L 以下两条
  • android项目的Maven编译错误“错误:包R不存在”

    我正在尝试使用 Android 应用程序建立一个 MAVEN 项目 我有这个pom文件
  • 类型错误:无法读取未定义的属性“redirect_uris”

    我想编写一个应用程序来处理我的一些以某种方式标记的 Gmail 电子邮件 示例代码here https github com googleapis google api nodejs client blob master samples g
  • Firestore 只同步差异吗?

    我想知道 Firestore 如何处理深度嵌套对象的实时同步 具体来说 它只同步差异吗 例如 我有一个应用程序状态 它只是一个包含 3 个值的数组 并且该状态在设备之间同步 如果我随后更改其中一个值 将同步整个新数组 在网络上传输 还是仅同
  • 如何将服务器时间转换为本地时间?

    我的 php 文件托管在世界其他地方 这date and time 函数返回服务器上的日期 时间 如何转换该日期 使其与我的本地日期 时间相同 服务器上的日期比我的当地时间晚 10 小时 我可以直接进行硬编码并从服务器时间中减去它 但什么是
  • Android INSTALL_FAILED_INVALID_URI

    当我尝试通过 Eclipse 将 Android 应用程序安装到设备时 我刚刚开始收到以下错误 Installation failed due to invalid URI Please check logcat output for mo
  • 自定义 PageControl 图像 - Swift

    我正在尝试为 UIPageControl 点设置图像 我需要更改默认点 而不是我需要图像 我使用了下面的代码 self pageCtrl currentPageIndicatorTintColor UIColor init patternI
  • Eclipse Juno 加载描述符错误

    我刚刚将 Eclipse 从 Galileo 更新为 Juno 我创建了一个新的工作区并导入了一个基于 Java Spring MVC 的项目 当我打开它时 它开始 加载描述符 然后弹出一条错误消息 加载 mta pfm 的描述符 期间发生
  • SQL查询删除两年以上的记录

    我需要通过从多个表中删除两年以上的记录来清理非常臃肿的 SQL 数据库 做到这一点最有效的方法是什么 您有什么方法可以确定记录的 年龄 吗 即 表中是否有一列代表行的年龄或可用于计算年龄的日期 如果是这样 那应该是一个简单的 DELETE
  • MySql:查找特定记录的行号

    我正在使用一个通用数据面板 该面板可以向该面板提供各种不同的查询 它们可能是从表或视图中选择的简单查询 也可能是用户使用复杂的联接和其他表达式自行定义的复杂查询 我正在尝试修改我的数据面板 以便如果用户选择一条记录 然后对表进行排序 我会找
  • 为什么结合性是运算符的基本属性,而不是优先级的基本属性

    在任何编程语言教科书中 我们总是被告知该语言中的每个运算符如何具有左结合性或右结合性 结合性似乎是任何运算符的基本属性 无论其需要多少操作数 在我看来 我们可以将任何关联性分配给任何运算符 无论我们如何将关联性分配给其他运算符 但为什么会这
  • 在c++中接收USB设备插入的通知/事件/信号

    我已经寻找了一段时间 但一直无法找到这个问题的答案 我正在尝试接收特定 USB 设备的连接通知 这是我所知道的 我运行的是 linux 内核版本 3 2 我有识别 USB 设备所需的 ID 我创建了一个用于读取和写入设备的内核模块 内核模块