美文网首页
ubuntu18.0.4.3(desktop)监测U盘的热插拔事

ubuntu18.0.4.3(desktop)监测U盘的热插拔事

作者: 鹏_921010 | 来源:发表于2022-04-18 20:35 被阅读0次

一、客户需求:基于隐私安全问题,设备到客户,是离线运行的,现在客户想更新设备显示内容,想插上U盘就可以实现,(就是把U盘的内容copy到指定目录中),这样就不需要联网操作

二、具体实现:查看资料,可利用glib2.0的接口,具体api接口调用如下,但是原理还么有搞清楚,还在梳理,

sudo apt-get install libglib2.0-dev   安装glib2.0

static GMainLoop *loop = g_main_loop_new(NULL, FALSE);  //创建一个主循环的对象

GVolumeMonitor * mon=g_volume_monitor_get();//通过gio获取GVolumeMonitor 的对象

//注册2个信号,“mount-added”和“mount-removed”,感觉有点类型qt的信号和槽

g_signal_connect(mon,"mount-added",G_CALLBACK(onMount),NULL);

g_signal_connect(mon,"mount-removed",G_CALLBACK(onUnMount),NULL);

g_main_loop_run (loop);

g_main_loop_unref (loop);

三、代码运行结果如下,可以监听到热插拔

onMount事件 main函数 运行结果

四、可以使用findmnt命令查看,变量根据自己实际的

MNT_DIR=/media/pi

findmnt -t vfat,exfat,fuseblk,msdos,ntfs,ext2,ext3,ext4 -n -o TARGET -l 2>/dev/null | grep $MNT_DIR

也可以先查下/dev下是否有设备

for d in /dev/sd[^a]*; do dir_usb=$(findmnt -noTarget $d) [ ! -z $dir_usb ] && break  done

相关文章

网友评论

      本文标题:ubuntu18.0.4.3(desktop)监测U盘的热插拔事

      本文链接:https://www.haomeiwen.com/subject/yhxjertx.html