我使用 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/