在Linux中,我如何检测USB驱动器的插入?

5

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

我的系统没有d-bus,但是它正在使用udev。我认为udev是执行此检测的“正确”方法,但似乎很复杂。

有人能指点我开始处理这个问题的方向吗?是否有一种不依赖于udev的方式来实现此功能,如果没有,是否有一个好的“入门指南”可以使用?我真的不需要太多功能,只需要让我的应用程序在驱动器插入时被通知(并提供足够的信息以挂载驱动器)。

谢谢

Marlon

1个回答

4
这篇文档的“libudev - 监控接口”部分http://www.signal11.us/oss/udev/可以让你入门。
不要使用while(1)循环和sleep,而是把它们放在一个函数中,然后设置一个定期的Qt定时器,每半秒钟或其他时间调用一次该函数。

4
不使用计时器,而是使用“QSocketNotifier类”来监视文件描述符的活动。这将替换对“select”的调用,并仅在需要调用“udev_monitor_receive_device”时激活您的回调函数。参考链接:http://qt-project.org/doc/qt-4.8/qsocketnotifier.html - Ben Voigt
上面的URL已经不能使用了。我相信它原本是指向nickglobal的libudev和Sysfs教程中的“libudev-监视接口”章节。 - Martin Konrad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接