当 C 中的 udev 监视器收到信号时,是否会挂载 USB 驱动器?

当 C 中的 udev 监视器收到信号时,是否会挂载 USB 驱动器?

我正在使用 libudev 来检测 C 程序中何时连接 USB 驱动器。一旦我检测到它已通过来自内核的信号(通过结构udev_monitor)附加,我可以假设 systemd 已安装该驱动器吗?

如果不是,我如何确定性地等待驱动器安装,即不等待任意时间 X 秒,而是等待特定事件。

答案1

事实证明,最好不要侦听 USB 设备附加事件,而是侦听挂载点附加事件。换句话说,不要过滤“usb”子系统和“usb_device”devtype,而是使用“block”子系统和“partition”devtype,然后检查事件是否包含 ID_BUS="usb"。

相关内容