Найти информацию о USB-устройствах на C ++

Мне нужно указать существующий концентратор USB и устройства, подключенные в концентраторе, используя мою программу на C ++.

Я могу распечатать USB-концентратор и устройства, подключенные в концентратор от терминала, используя команды

lsusb lsusb -v 

Я хочу использовать эту функцию в своей программе на C ++.

Как я могу это сделать программно. Существуют ли классы C ++ для использования в моем приложении Qt.

2 Solutions collect form web for “Найти информацию о USB-устройствах на C ++”

Здесь простейший аналог lsusb :

 #include <stdio.h> #include <usb.h> main(){ struct usb_bus *bus; struct usb_device *dev; usb_init(); usb_find_busses(); usb_find_devices(); for (bus = usb_busses; bus; bus = bus->next) for (dev = bus->devices; dev; dev = dev->next){ printf("Trying device %s/%s\n", bus->dirname, dev->filename); printf("\tID_VENDOR = 0x%04x\n", dev->descriptor.idVendor); printf("\tID_PRODUCT = 0x%04x\n", dev->descriptor.idProduct); } } 

Скомпилировать с -lusb

Это Fedora, для дистрибутивов на основе Debian вы можете сделать что-то подобное:

  • Получите пакет, содержащий эту программу: «rpm -qif / usr / bin / lsusb» сообщает, что он исходит из пакета usbutils, на главной странице http://www.linux-usb.org
  • Посмотрите на источники, размещенные там (предположительно на C, из них должно быть легко извлечь то, что вам нужно)

В качестве альтернативы:

  • Узнайте, где / как ядро ​​публикует информацию о настройке USB, т.е. / sys / bus / usb / devices показывает всю настройку
  • Прочитайте, как эта информация организована (это настраивается для легкого разбора, поэтому ее не должно быть слишком сложно обрабатывать)

Отчаянное решение:

  • Просто запустите программу lsusb (8) и получите требуемые данные из своего вывода

BTW, попробуйте использовать Python вместо C ++ для написания вашего приложения GUI. Графические интерфейсы редко достаточно критичны для производительности, а экономия времени программиста более чем компенсирует любые потери эффективности (и пользователь, вероятно, их вообще не заметит).

  • linux: Отбросить грязные страницы для блочного устройства (при отключении usb)
  • Как можно сделать горячий подключаемый live linux USB, похожий на WIndows to Go
  • Как настроить параметры последовательного порта USB для программы Windows, работающей в Wine?
  • Как связать физический порт usb с номером устройства usb
  • Обнаружение USB-модема неустойчиво - как я могу это исправить?
  • Крепление USB не работает на Centos 6.4
  • Как удалить файловую систему только для чтения с USB-накопителя
  • Командная строка эквивалентна «Безопасно удалить диск»?
  • Как установить Fedora из ISO на USB?
  • Настроить fstab для загрузочного usb
  • Raspian: статическая карта / dev / ttyUSB *
  • Linux и Unix - лучшая ОС в мире.