LINUX.ORG.RU

libusb - определение серийного номера


0

1

Здравствуйте уважаемые!

мне нужно извлечь при помощи этой библиотеки серийный номер usb устройства. подскажите пожалуйста как пользоваться структурой:

Код: (C) static inline int libusb_get_string_descriptor(libusb_device_handle *dev, uint8_t desc_index, uint16_t langid, unsigned char *data, int length) { return libusb_control_transfer(dev, LIBUSB_ENDPOINT_IN, LIBUSB_REQUEST_GET_DESCRIPTOR, (LIBUSB_DT_STRING << 8) | desc_index, langid, data, length, 1000); }

либо:

Код: (C) int libusb_get_string_descriptor_ascii(libusb_device_handle *dev, uint8_t index, unsigned char *data, int length);

нижеследующий код компилируется, но при запуске выдает Segmentation fault:

Код: (C) static void print_devs(libusb_device **devs) { libusb_device *dev; libusb_device_handle *DevHandle; unsigned char *data; int i = 0;

while ((dev = devs[i++]) != NULL) { struct libusb_device_descriptor desc; int r = libusb_get_device_descriptor(dev, &desc); if (r < 0) { fprintf(stderr, «failed to get device descriptor»); return; }

libusb_get_string_descriptor_ascii(DevHandle,desc.iSerialNumber,data,20); printf(«VID:%04x PID:%04x SN:%04x\n», desc.idVendor, desc.idProduct, data); } }

Для нормального оформления, используй ЛОРкод, и перед отправкой пользуйся кнопочкой предпросмотра.
www.linux.org.ru/wiki/en/Lorcode

Bad_ptr ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.