LibUSB是一個跨平臺的庫,它提供了對USB設備的訪問
在Debian和Ubuntu系統上,可以使用以下命令安裝LibUSB庫:
sudo apt-get install libusb-1.0-0-dev
在Fedora和Red Hat系統上,可以使用以下命令安裝LibUSB庫:
sudo yum install libusb-devel
創建一個名為list_devices.c
的文件,并添加以下代碼:
#include<stdio.h>
#include <stdlib.h>
#include <libusb-1.0/libusb.h>
int main() {
libusb_context *ctx = NULL;
libusb_device **devs = NULL;
ssize_t cnt;
int r, i;
r = libusb_init(&ctx);
if (r < 0) {
fprintf(stderr, "Failed to initialize libusb\n");
exit(1);
}
cnt = libusb_get_device_list(ctx, &devs);
if (cnt < 0) {
fprintf(stderr, "Failed to get device list\n");
libusb_exit(ctx);
exit(1);
}
printf("Found %ld devices\n", cnt);
for (i = 0; i < cnt; i++) {
struct libusb_device_descriptor desc;
r = libusb_get_device_descriptor(devs[i], &desc);
if (r < 0) {
fprintf(stderr, "Failed to get device descriptor\n");
continue;
}
printf("Device %d: ID %04x:%04x\n", i, desc.idVendor, desc.idProduct);
}
libusb_free_device_list(devs, 1);
libusb_exit(ctx);
return 0;
}
在終端中,導航到包含list_devices.c
文件的目錄,然后運行以下命令:
gcc -o list_devices list_devices.c -lusb-1.0
這將編譯程序并生成一個名為list_devices
的可執行文件。
要運行程序,需要root權限,因為訪問USB設備通常需要特權。運行以下命令:
sudo ./list_devices
程序將輸出連接到計算機的所有USB設備的數量以及它們的供應商ID和產品ID。
這只是一個簡單的示例,LibUSB庫提供了更多功能,如配置設備、聲明接口、傳輸數據等。要了解更多關于LibUSB的信息,請參閱官方文檔:http://libusb.info/