Linux
檢索提供特定掛載點的驅動器的 USB 設備資訊
我正在編寫一個需要執行以下操作的 C/C++ 工具:
- 檢測何時安裝了新的安裝點。✔
- 找出提供此掛載點的 (USB) 設備。❓
- 獲取此設備的 USB 供應商 ID 和產品 ID。✔ - libusb
我不確定如何使用 GNU/Linux 提供的介面來完成任務 2。請注意,我對使用任何命令行工具都不感興趣——我正在編寫一個應用程序並且需要使用作業系統介面。
到目前為止,我已經考慮過使用
/proc/{pid}/mountinfo
(這是我用來檢查安裝是否已更改的方法),但它似乎不允許我跟踪哪個設備提供了這個安裝點。任何幫助,將不勝感激。
假設您使用的是 udev,libudev可能是一個不錯的選擇。udev是linux的子系統,負責在系統插入新設備時自動創建設備節點。使用 udev,您還可以在新設備插入系統時對其進行監控,並獲取您想要的所有資訊。它提供了很好的功能,例如“udev_device_get_sysattr_value”,您可以使用它查詢您想要的任何屬性並輕鬆獲取其值。
為了查看通過 udev 可用的屬性,您可以使用 udevadm 實用程序,如下所示:
udevadm 資訊 –query=all -n /dev/your_device_node