c++ - libusb:在Linux上的C++中,错误[op_open] getcap失败

标签 c++ linux raspberry-pi libusb

我在Linux上用C++调用libusb_open时遇到麻烦(在Raspberry Pi上运行,但使用Exagear虚拟化为x86)。
我可以找到一个使用libusb_get_device_list的设备,但使用libusb_open将设备转换为设备处理程序似乎会引起问题,即使它返回0(成功),也无法再执行任何命令。它给了我错误:

libusb: error [op_open] getcap failed (22)
更新
一点挖掘发现,以下命令正在产生错误(在libusb中):
r = ioctl(hpriv->fd, IOCTL_USBFS_GET_CAPABILITIES, &hpriv->caps);
其中IOCTL_USBFS_GET_CAPABILITIES_IOR('U', 26, __u32)。挖掘发现error 22中的ioctl是无效的参数。我仍在尝试取消选择,但是在此提供的任何帮助将不胜感激。

最佳答案

我不知道在这种情况下是否会引起问题,但是虚拟化的x86可能会引起问题,因为功能很可能是由基于ARM的OS赋予的。如果我的假设正确,那么库将无法处理您的系统正在使用的格式。我建议您在x86平台上测试代码,而无需像VMWare工作站或KVM这样的任何虚拟化

关于c++ - libusb:在Linux上的C++中,错误[op_open] getcap失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41504792/

相关文章:

c++ - C++ 中的 While 函数和 cin

c++ - 在 C++ 中创建我自己的运算符

linux - Ifconfig 不提供 Kali Linux 上的任何详细信息

assembly - Raspberry Pi 3 Model B ARM assembly 非法指令(Core Dumped)

c++ - 提取不同语言环境的年、月和日

c++ - execl - 现在没有可用于编程的内存 (OS X/XCode/C++)

linux - AWK 日期到纪元

c++ - <函数名称> 的 undefined reference

python - Raspberry PI for 循环使 LED 闪烁不工作

python - 如何在树莓派或任何其他 unix 系统上编写多命令 cronjob