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

https://blog.csdn.net/qq123386926/article/details/50695769

http://blog.sina.com.cn/s/blog_5f435c130101cqik.html

posted @ 2018-09-05 15:07  JadeCicada  阅读(1015)  评论(0编辑  收藏  举报