【问题标题】:How do I detect usb drive insertion in Linux?如何在 Linux 中检测 USB 驱动器插入?
【发布时间】:2011-11-18 23:45:11
【问题描述】:

我为嵌入式 linux 项目编写了一个应用程序,我希望我的应用程序在用户插入 USB 驱动器时显示一个特定的菜单。我正在使用 Qt 用 C++ 编写应用程序。

我的系统没有 d-bus,但它正在使用 udev。在我看来,udev 是进行这种检测的“正确”方式,但似乎很复杂。

谁能指出我正确的方向来开始这个?有没有办法在没有 udev 的情况下做到这一点,如果没有,我可以使用 udev 的良好“入门”指南吗?我真的不需要太多功能,只需要一种在插入驱动器时通知我的应用程序的方法(以及让我的应用程序安装驱动器的足够信息)。

谢谢

马龙

【问题讨论】:

    标签: linux qt


    【解决方案1】:

    本文档http://www.signal11.us/oss/udev/的“libudev-监控接口”部分 应该让你开始。
    而不是 while(1) 循环和睡眠,只需用这些东西创建一个函数,然后设置一个周期性的 Qt 计时器,每隔半秒或其他时间调用一次。

    【讨论】:

    • 谢谢!我认为这正是我所需要的。
    • 而不是计时器...“QSocketNotifier 类支持监视文件描述符上的活动”。 qt-project.org/doc/qt-4.8/qsocketnotifier.html 这将取代对select 的调用,并且仅在需要调用udev_monitor_receive_device 时才激活您的回调。
    • 上面的 URL 已经失效了。我相信它指向了nickglobal's libudev and Sysfs Tutorial的“libudev - Monitoring Interface”一章。
    猜你喜欢
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多