阅读量:0
在Ubuntu中,可以通过libusb库来访问USB设备。以下是一个简单的示例代码,演示如何使用libusb来读取USB设备的信息:
#include <stdio.h> #include <libusb-1.0/libusb.h> int main() { libusb_device **devs; libusb_context *ctx = NULL; ssize_t cnt; // 初始化libusb库 if (libusb_init(&ctx) < 0) { printf("libusb init failed\n"); return 1; } // 获取连接到计算机的所有USB设备列表 cnt = libusb_get_device_list(ctx, &devs); if (cnt < 0) { printf("Failed to get device list\n"); return 1; } // 遍历USB设备列表,打印设备信息 for (ssize_t i = 0; i < cnt; i++) { libusb_device *dev = devs[i]; struct libusb_device_descriptor desc; if (libusb_get_device_descriptor(dev, &desc) < 0) { printf("Failed to get device descriptor\n"); return 1; } printf("Device %d: VendorID=0x%04x, ProductID=0x%04x\n", i, desc.idVendor, desc.idProduct); } // 释放设备列表 libusb_free_device_list(devs, 1); // 关闭libusb库 libusb_exit(ctx); return 0; }
这段代码会列出连接到计算机上的所有USB设备的VendorID和ProductID。可以根据自己的需求修改代码,例如读取设备的其他信息或执行其他操作。在编译时需要链接libusb库,可以使用以下命令:
gcc -o usb_example usb_example.c -lusb-1.0
之后运行编译后的可执行文件即可查看USB设备的信息。