0

我正在编写一个程序,它将一些文件复制到 USB 可移动存储中。所以我需要一个所有可用可移动存储的列表。我正在使用 C。便携性是首选。

4

1 回答 1

1

可能是 libusbx

libusbx 是一个提供对 USB 设备的通用访问的库。作为一个库,它旨在供开发人员使用,以促进与 USB 硬件通信的应用程序的开发。

它是可移植的:使用单个跨平台 API,它可以访问 Linux、OS X、Windows 和 OpenBSD 上的 USB 设备。

它是用户模式:应用程序与设备通信不需要特殊特权或提升。

它与版本无关:支持所有版本的 USB 协议,从 1.0 到 3.0(最新)。

参见libusb_get_device_list

libusb_context * usb_ctx = NULL;

int main()
{
...
libusb_init(&usb_ctx);
...
libusb_exit(usb_ctx);
...
} 

some_func()
{
...
libusb_device **list;
ssize_t number_of_devices = libusb_get_device_list(usb_ctx, &list);
...
}

(警告我只是在网上找到的,我没有个人经验,代码没有经过测试,看起来你需要在使用前调用libusb_init/libusb_exit 见

*http://libusbx.sourceforge.net/api-1.0/group__lib.html*

http://libusbx.sourceforge.net/api-1.0/contexts.html.h

于 2012-05-04T07:36:47.773 回答