qt linux下自动检测U盘热插拔
如果用U盘来更新软件,需要先删除当前的可执行文件,但是如果删除之后,复制失败的话会导致后续没有文件可以运行了。一个方法是将新的可执行文件放到另一个目录中,当copy成功后修改linux的启动文件,然后reboot.
1. http://www.qtcn.org/bbs/read-htm-tid-14535.html
使用qt自带的QDBus可以实现。
D_BUS学习:
http://www.mamicode.com/info-detail-2303044.html
D-BUS是一个提供简单的应用程序互相通讯的途径的自由软件项目,它是作为freedesktoporg项目的一部分来开发的。
D-Bus允许程序在其上注册以提供服务给其他的程序,同时客户端程序可以使用D-bus检测有哪些服务是可得的,程序也可注册以等待kernel的events,比如说硬件的热插拔。
2. 另一个方法,开启一个qtimer,然后在timeout里面检测/proc/partititon文件,以及/proc/mount文件,我写过很多这方面的软件,当然从hal层来做的话,也可以,但是你必须首先连接dbus
3. 用netlink--easy