#c #linux #udev
#c #linux #udev
Вопрос:
в режиме реального времени я хочу распечатывать события горячего подключения только на жестких дисках. Мой код выводит все события для правильного «devtype» («диск») и «подсистема» («блок»). Однако это включает в себя устройства, которые меня не интересуют, такие как циклические устройства, устройства cdrom и т. Д., Меня интересуют только необработанные диски (например, / dev / sda, а не разделы, такие как /dev / sda1). Есть ли способы фильтровать из libudev что-то подобное? в правилах udev это называется «ЯДРО». По сути, я хочу показать все новые устройства, которые будут соответствовать правилу udev следующим образом:
KERNEL=="sd*", ENV{DEVTYPE}=="disk"
это будет соответствовать только необработанным дискам. например, /dev/sda.
Теперь моя программа может сопоставляться с devtype и и subsystem с помощью
udev_monitor_filter_add_match_subsystem_devtype(mon, "block", "disk");
вызов libudev.
однако теперь это по-прежнему выводит изменения на такие устройства, как /dev / loop * или /dev / sr *, которые мне не нужны.
есть ли способ фильтровать в ЯДРЕ?
Редактировать: