3

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

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

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

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

问候,

棱镜

4

2 回答 2

1

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

于 2012-02-10T18:23:06.557 回答
0

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

您可以查看http://www.reactivated.net/writing_udev_rules.html了解更多信息。

于 2011-12-16T12:09:02.600 回答