Проверка на наличие драйвера

#objective-c #macos

#objective-c #macos

Вопрос:

Я пишу приложение для Mac, которому необходимо проверить, установлен ли данный драйвер или нет.

Как я могу это проверить?

BR, S.

Комментарии:

1. Это был бы USB-последовательный драйвер: prolific.com.tw/eng/downloads.asp?id=31

2. Похоже, установлен kext: ProlificUsbSerial.kext

Ответ №1:

Самый простой способ — использовать grep-вывод kextstat для его имени, зная, что grep возвращает ненулевой код выхода, когда ничего не найдено:

 if (0 == system("/usr/sbin/kextstat | /usr/bin/grep -qF com.company.KextName"))
{
     // it is loaded
}
 

Если вам нужно сделать это напрямую, проверьте kextstat исходный код, вы обнаружите, что он использует kmod_get_info API, однако я не могу найти никакой документации по нему прямо сейчас. Я не вижу серьезных недостатков в использовании system() call, поэтому я бы придерживался его.