Как получить список всех USB-накопителей, подключенных к системе с помощью C?
Я пишу программу, которая будет копировать некоторые файлы на USB-накопитель. Поэтому мне нужен список всех доступных съемных хранилищ. Я использую C. Portablity является предпочтительным.
1 ответ
libusbx - это библиотека, которая предоставляет общий доступ к USB-устройствам. Как библиотека, она предназначена для использования разработчиками для облегчения разработки приложений, которые взаимодействуют с USB-оборудованием.
Он переносим: используя единый кроссплатформенный API, он обеспечивает доступ к USB-устройствам в Linux, OS X, Windows и OpenBSD.
Это пользовательский режим: никаких специальных привилегий или прав не требуется, чтобы приложение взаимодействовало с устройством.
Он не зависит от версии: поддерживаются все версии протокола USB (от 1.0 до 3.0 (последняя версия)).
Смотрите libusb_get_device_list
libusb_context * usb_ctx = NULL;
int main()
{
...
libusb_init(&usb_ctx);
...
libusb_exit(usb_ctx);
...
}
some_func()
{
...
libusb_device **list;
ssize_t number_of_devices = libusb_get_device_list(usb_ctx, &list);
...
}
(предупреждение, что я нашел только это онлайн, у меня нет личного опыта с ним, код не был проверен, похоже, что вам нужно вызвать libusb_init/libusb_exit перед использованием, см.
* HTTP://libusbx.sourceforge.net/api-1.0/group__lib.html*
а также
http://libusbx.sourceforge.net/api-1.0/contexts.html.h