This is what ChatGPT proposes: #include <libusb-1.0/libusb.h> #include <stdio.h>
void scan_devices(const char* target_string) { libusb_device **devs; libusb_context *ctx = NULL; int r; ssize_t cnt; r = libusb_init(&ctx); if (r < 0) return; cnt = libusb_get_device_list(ctx, &devs); if (cnt < 0) return; for (ssize_t i = 0; i < cnt; i++) { libusb_device *dev = devs[i]; libusb_device_handle *handle = NULL; if (libusb_open(dev, &handle) == 0) { // Iterate through all configurations and interfaces struct libusb_config_descriptor *config; libusb_get_config_descriptor(dev, 0, &config); for (int j = 0; j < config->bNumInterfaces; j++) { const struct libusb_interface *inter = &config->interface[j]; const struct libusb_interface_descriptor *interdesc = &inter->altsetting[0]; if (interdesc->iInterface) { unsigned char buffer[256]; int len = libusb_get_string_descriptor_ascii(handle, interdesc->iInterface, buffer, sizeof(buffer)); if (len > 0) { printf("Interface %d: %s\n", j, buffer); if (strcmp((char*)buffer, target_string) == 0) { // Match found printf("Match found for interface %d\n", j); } } } } libusb_free_config_descriptor(config); libusb_close(handle); } } libusb_free_device_list(devs, 1); libusb_exit(ctx); } int main() { scan_devices("Particular String"); return 0; } On Wed, Feb 14, 2024 at 3:54 PM Muni Sekhar <munisekhar...@gmail.com> wrote: > HI all, > > USB devices can have multiple interfaces (functional units) that serve > different purposes (e.g., data transfer, control, audio, etc.). > > Each interface can have an associated string descriptor (referred to > as iInterface). The string descriptor provides a human-readable name > or description for the interface. > > From user space service utility, How to scan all the USB devices > connected to the system and read each interface string > descriptor(iInterface) and check whether it matches "Particular > String" or not. > > The service program should trigger scanning all the USB devices on any > USB device detection or removal. Can libusb be used for it? > > Any input would be appreciated. > > -- > Thanks, > Sekhar >