如何使用C获取系统中连接的所有USB可移动存储的列表?

时间:2012-05-04 06:42:11

标签: c usb-flash-drive

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

1 个答案:

答案 0 :(得分:1)

Possibly 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