使用libudev获取Linux中挂载驱动器的信息

Getting information on mounted drives in Linux with libudev

本文关键字:驱动器 信息 libudev 获取 Linux 使用      更新时间:2023-10-16

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

虽然这似乎可以正常工作,但我不确定libudev是否在挂载设备之前,在挂载设备之后或介于两者之间的某个地方向我发送设备已添加的信号(这意味着我在获得信号后立即检查/proc/mounts文件是一种不可靠的方法)。

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

如果不是,是否有其他方法可以获得可靠的设备节点的挂载路径?

问候,

取了

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

您只想获取挂载路径吗?还是要将该存储设备挂载到特定的挂载点?如果要将存储设备挂载到特定路径上,则不需要捕获信号。您可以为特定设备定义规则。你可以在etc/udev/rules中定义这些规则。d文件。

您可以登录http://www.reactivated.net/writing_udev_rules.html获取更多信息。