在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設備的信息。