gpt4 book ai didi

linux - 安装 iPod 上的多个安装事件

转载 作者:太空宇宙 更新时间:2023-11-04 04:29:43 26 4
gpt4 key购买 nike

我正在开发一个应用程序,它必须检测存储卷是否已安装或卸载。我正在使用 GIO 来实现这一点。我正在监听 mount-addedmount-removed 信号。当我安装/卸载笔式驱动器时,一切正常。但是,我在安装 iPod 时遇到问题。我在安装和卸载时分别收到两个回调。我假设 GMount 对象之一是 shadowed但是g_mount_is_shadowed两者都返回 false。我如何决定处理哪一个以及忽略哪一个?我无法同时处理两者。我必须检测与存储设备对应的挂载/卸载并仅对其进行处理。

int main()
{
g_type_init();
GVolumeMonitor* volume_monitor = g_volume_monitor_get();
g_signal_connect(G_OBJECT(volume_monitor), "mount-added", G_CALLBACK(mount_added), NULL);
g_signal_connect(G_OBJECT(volume_monitor), "mount-removed", G_CALLBACK(mount_removed), NULL);

GMainLoop* main_loop = g_main_loop_new(NULL, FALSE);
g_main_loop_run(main_loop);
...
}

最佳答案

我已经弄清楚了。 GIO 为每个添加的文件系统发出一个 mount-added 信号。 iPod 有两种文件系统 - 一种用于操作系统,另一种用于存储音乐。因此反复回调。卸载时也会发生同样的情况。这与阴影坐骑无关。不幸的是,我仍然不知道如何区分这两个坐骑。 GIO 显示的唯一区别是其中一个 GMount 对象没有与其关联的 GVolume 对象。我不知道如何解释。

关于linux - 安装 iPod 上的多个安装事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4605106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com