c++ - 使用 libudev 在 Linux 中获取有关已安装驱动器的信息

标签 c++ linux mount udev

我使用 libudev 来监控存储设备(USB key 等),这样当它们被修改时,我会在我的程序中收到通知。 Libudev 会告诉您设备是否已添加、删除等,并为您提供设备节点。例如,如果我在我的系统中添加了一张 SD 卡,libudev 会告诉我添加了“/dev/mmcblk0p1”。发生这种情况时,我也想获得设备的挂载点。因此,我检查/proc/mounts 以查看设备已映射到的安装路径。

虽然这似乎工作正常,但我不确定 libudev 是否​​在安装设备之前、安装设备之后或两者之间的某个时间向我发送了设备已添加的信号(这意味着我检查/proc/mounts file right after I get the signal is an unreliable method).

所以我的问题是有谁知道 libudev 何时发送信号,以及我用来获取设备挂载路径的方法是否可靠?

如果不是,是否有另一种方法可以在给定可靠的设备节点的情况下获取挂载路径?

问候,

棱镜

最佳答案

我不能保证,但我正在做一些非常相似的事情,它似乎也对我有用。我监听 block /磁盘添加事件,找到相应的 block /分区设备,然后解析/proc/mounts 寻找开发节点。

关于c++ - 使用 libudev 在 Linux 中获取有关已安装驱动器的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8532443/

相关文章:

c++ - Linux 获取关于焦点 gui 窗口更改的通知

c++ - 如何轻松实现成员函数作为模板参数?

c++ - 圆是否相交

c++ - 在自定义库位置的情况下使用 dlopen 加载依赖库

linux - 在 Oracle Linux 上从光纤 channel SAN 安装存储

c++ - 在 qt 中打印阿拉伯文本的替代方法

linux - 如果命令 "cat/dev/net/tun"结果 $string 那么

c++ - 使用 istream 从命名管道读取

linux - 错误的文件系统类型、错误的选项、错误的 super block

linux - Linux 上的 getfsstat() 等效于什么?