获取挂载设备的信息 gio
<span style="font-size:18px;">使用GVolumeMonitor获取挂载设备的监控</span>
#include <glib.h>
#include <gio/gio.h>static void
do_action(char* cmd)
{g_print("[do_action] start to exec: %s\n", cmd);GError* error = NULL;g_spawn_command_line_sync(cmd, NULL, NULL, NULL, &error);if (error) {g_print("[do_action] exec '%s' failed: %s\n", cmd, error->message);g_error_free(error);}g_print("[do_action] exec done\n");
}static void
handle_volume_changed(GVolumeMonitor* monitor, GVolume* volume, gpointer data)
{char* ev = (char*)data;g_print("[handle_volume_changed] event: %s\n", ev);return;if (g_strcmp0(ev, "volume-removed") == 0) {return;}char* path = g_volume_get_identifier(volume, "unix-device");char* cmd = g_strdup_printf("gvfs-mount -d %s", path);g_free(path);do_action(cmd);g_free(cmd);
}static void
handle_mount_changed(GVolumeMonitor* monitor, GMount* mount, gpointer data)
{char* ev = (char*)data;g_print("[handle_mount_changed] event: %s\n", ev);return;if (g_strcmp0(ev, "mount-removed") == 0) {return;}GFile* root = g_mount_get_root(mount);char* path = g_file_get_path(root);g_object_unref(G_OBJECT(root));char* cmd = g_strdup_printf("gvfs-open %s", path);g_free(path);do_action(cmd);g_free(cmd);
}int
main()
{GVolumeMonitor* monitor = g_volume_monitor_get();g_signal_connect(G_OBJECT(monitor), "volume-added",G_CALLBACK(handle_volume_changed), "volume-added");g_signal_connect(G_OBJECT(monitor), "volume-removed",G_CALLBACK(handle_volume_changed), "volume-removed");g_signal_connect(G_OBJECT(monitor), "mount-added",G_CALLBACK(handle_mount_changed), "mount-added");g_signal_connect(G_OBJECT(monitor), "mount-removed",G_CALLBACK(handle_mount_changed), "mount-removed");g_main_loop_run(g_main_loop_new(0,0));return 0;
}
获取挂载设备的信息 gio相关推荐
- /proc/mounts获取挂载设备mntent信息
前言 /proc文件系统是一个伪文件系统,在系统运行时通过访问内核数据结构.改变内核设置的机制,实现以文件系统的方式与内核数据交互.应用程序可以通过proc文件系统获取系统的信息,利用此功能在一些嵌入 ...
- uni-app 获取手机设备各项信息
uni-app 获取手机各项信息 直接使用uni.getSystemInfo 官方文档:地址 参考代码 我这里的代码经过测试是可以获取到Android设备的信息的 <template>&l ...
- Android获取硬件设备详细信息
此文介绍一些获取Android手机硬件信息的方法 主要是从Build和TelephonyManager中获取 以及使用反射获取SystemProperties 并使用他的get方法获取一些系统隐藏掉的 ...
- electron-vue获取电脑设备标识信息
场景:设备物理标识和账号进行绑定的场景,需要拿到设备的信息 如 mac address 等: 设备:当前对win10 和 win7 的获取方法进行总结: 台式PC 一体机 笔记本 : 网上的方 ...
- 微信小程序获取用户设备的信息
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 可以获取用户的手机型号,手机操作系统,微信版本,屏幕宽高等等. Object wx.getSystemInfo ...
- android蓝牙连接耳机分析,如何在android中获取蓝牙耳机设备的信息(特别是耳机设备名称)...
我终于解决了这个问题 . 以前我从"BluetoothAdpter"类获得了所有绑定设备的"getBondedDevices()"方法 . 但我通过使用&quo ...
- Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机设备的各种固件信息如DeviceID或者SerialNumber等(C++)
项目场景 Baumer工业相机堡盟相机是一种高性能.高质量的工业相机,可用于各种应用场景,如物体检测.计数和识别.运动分析和图像处理. Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分 ...
- 实时获取用户所在城市(管理设备位置信息)
Geolocation模块管理设备位置信息,用于获取地理位置信息,如经度.纬度等.通过plus.geolocation可获取设备位置管理对象.虽然W3C已经提供标准API获取位置信息,但在某些平台存在 ...
- Geolocation模块管理设备位置信息,用于获取地理位置信息,如经度、纬度等。通过plus.geolocation可获取设备位置管理对象
方法: getCurrentPosition: 获取当前设备位置信息 watchPosition: 监听设备位置变化信息 clearWatch: 关闭监听设备位置信息 对象: Position: JS ...
最新文章
- html图片显示原始大小,我如何使PHP / HTML图像在单击时显示原始大小?
- hadoop 入门实例【转】
- C/C++:uint64_t 转为char*
- Python中and、or、not用法
- Android版Cocos2d-X应用的AnySDK集成Admob管理库教程
- python3-matplotlib手册
- SAR成像(一):线性调频信号(LFM)和脉冲压缩
- ping网络诊断常见故障
- python使用selenium大麦网抢票
- javascript中关于日期和时间的基础知识
- 记一次烧毁AO3400的过程
- Android安装步骤
- studio 3t 如何链接开启验证的mongodb
- jekenis+tomcat部署更新war失败【踩坑日记】
- 交易委托账本 order book
- iOS7初体验(1)——第一个应用程序HelloWorld
- UVA10110-灯光
- 如何替换一个Linux内核函数的实现-热补丁原理
- C++ 检测程序是否在运行
- 不想当空军的开发者,不是好程序员