linux下使用libusb库 打印usb设备列表的c代码
时间: 2024-09-26 21:14:47 浏览: 35
libusb-1.0.9_linux-usb设备接口_
5星 · 资源好评率100%
在Linux环境下,使用libusb库打印USB设备列表,你需要链接libusb库,并编写C代码来遍历系统中的USB设备。以下是一个简单的示例,展示如何列出所有已连接的USB设备:
```c
#include <stdio.h>
#include <libusb/libusb.h>
// 初始化libusb上下文
libusb_device **devs, **devlist;
int devcount;
void print_devices(libusb_device **list, int count)
{
for (int i = 0; i < count; i++) {
libusb_device_descriptor desc;
libusb_get_device_descriptor(list[i], &desc);
printf("Device %d:\n", i + 1);
printf(" Bus ID: %03d:%03d\n", desc.bus, desc.address);
printf(" Vendor ID: 0x%04X\n", desc.idVendor);
printf(" Product ID: 0x%04X\n", desc.idProduct);
printf(" Device Class: %d\n", desc.bDeviceClass);
printf("\n");
}
}
int main(void)
{
// 初始化libusb上下文
libusb_init(&udev_context);
// 搜索并获取所有设备信息
devcount = libusb_get_device_list(udev_context, &devs);
if (devcount < 0) {
fprintf(stderr, "Failed to get devices list: %s\n", libusb_strerror(-devcount));
exit(EXIT_FAILURE);
}
// 打印设备列表
print_devices(devs, devcount);
// 清理资源
libusb_free_device_list(devs, 1);
libusb_exit(&udev_context);
return 0;
}
阅读全文