我想在linux上连接usb设备。我使用libusb进行连接。但是当我调用usb_open(dev)时,它返回NULL,找到检查libusb源代码,在linux.c中找到usb_open.as的实现
int usb_os_open(usb_dev_handle * dev)
{
char filename[PATH_MAX + 1];
snprintf(filename, sizeof(filename) - 1, "%s/%s/%s",
usb_path, dev->bus->dirname, dev->device->filename);
dev->fd = open(filename, O_RDWR);
if (dev->fd < 0) {
dev->fd = open(filename, O_RDONLY);
if (dev->fd < 0)
USB_ERROR_STR(-errno, "failed to open %s: %s",
filename, strerror(errno));
}
return 0;
}
因此在打开时失败,并且errno设置为EACCES。但我检查设备权限如下:
crw-rw-rw- 1 root root 189,139 8月26 10:38 / dev / bus / usb / 002/012
那么,打开设备还有其他条件限制吗?