用c语言查找Linux下所有的usb设备
时间: 2023-04-10 10:03:35 浏览: 76
可以使用libusb库来查找Linux下所有的usb设备。以下是示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <libusb-1.0/libusb.h>
int main(int argc, char **argv)
{
libusb_device **devs;
libusb_context *ctx = NULL;
int r;
ssize_t cnt;
r = libusb_init(&ctx);
if (r < 0) {
fprintf(stderr, "Failed to initialize libusb\n");
return 1;
}
cnt = libusb_get_device_list(ctx, &devs);
if (cnt < 0) {
fprintf(stderr, "Failed to get device list\n");
libusb_exit(ctx);
return 1;
}
printf("Number of USB devices: %zd\n", cnt);
for (ssize_t i = 0; i < cnt; i++) {
libusb_device *dev = devs[i];
struct libusb_device_descriptor desc;
r = libusb_get_device_descriptor(dev, &desc);
if (r < 0) {
fprintf(stderr, "Failed to get device descriptor\n");
continue;
}
printf("Vendor ID: %04x, Product ID: %04x\n", desc.idVendor, desc.idProduct);
}
libusb_free_device_list(devs, 1);
libusb_exit(ctx);
return 0;
}