在Linux上以编程方式获取USB供应商和产品信息,可以通过使用libusb库来实现。libusb是一个开源的用户空间USB库,可以让开发者直接与USB设备进行通信。
以下是一个示例代码,使用libusb库在Linux上获取USB供应商和产品信息:
#include <stdio.h>
#include <libusb-1.0/libusb.h>
int main() {
libusb_context *ctx = NULL;
libusb_device **devs = NULL;
int r;
ssize_t cnt;
r = libusb_init(&ctx);
if (r < 0) {
printf("Failed to initialize libusb\n");
return 1;
}
cnt = libusb_get_device_list(ctx, &devs);
if (cnt < 0) {
printf("Failed to get USB device list\n");
libusb_exit(ctx);
return 1;
}
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) {
printf("Failed to get device descriptor\n");
continue;
}
printf("Vendor ID: 0x%04x\n", desc.idVendor);
printf("Product ID: 0x%04x\n", desc.idProduct);
}
libusb_free_device_list(devs, 1);
libusb_exit(ctx);
return 0;
}
这段代码使用libusb库的函数来初始化libusb上下文,获取USB设备列表,并遍历每个设备获取其供应商ID(Vendor ID)和产品ID(Product ID)。你可以根据需要对这些信息进行进一步处理和利用。
在编译这段代码时,需要链接libusb库。可以使用以下命令进行编译:
gcc -o usb_info usb_info.c -lusb-1.0
执行编译后的可执行文件,即可在终端上看到USB设备的供应商ID和产品ID。
这是一个基本的示例,你可以根据自己的需求进行扩展和修改。同时,你还可以参考libusb的官方文档(https://libusb.info/)了解更多关于libusb的功能和用法。
注意:本回答中没有提及任何特定的云计算品牌商,如有需要,请自行根据实际情况选择合适的云计算服务提供商。
领取专属 10元无门槛券
手把手带您无忧上云