linux打开usb设备失败错误无响应
我想在linux上连接usb设备。我用libusb连接。但是当我调用usb_open(dev)时,它返回NULL,查找并检查libusb源代码,在linux.c中我找到了usb_open.as的实现 int-usb_-os_-open(usb_-dev_-handle*dev) {linux打开usb设备失败错误无响应,linux,permissions,usb,Linux,Permissions,Usb,我想在linux上连接usb设备。我用libusb连接。但是当我调用usb_open(dev)时,它返回NULL,查找并检查libusb源代码,在linux.c中我找到了usb_open.as的实现 int-usb_-os_-open(usb_-dev_-handle*dev) { char文件名[PATH_MAX+1]; snprintf(文件名,sizeof(文件名)-1,“%s/%s/%s”, usb_路径,dev->bus->dirname,dev->device->filename);
char文件名[PATH_MAX+1];
snprintf(文件名,sizeof(文件名)-1,“%s/%s/%s”,
usb_路径,dev->bus->dirname,dev->device->filename);
dev->fd=open(文件名,O_RDWR);
如果(dev->fd<0){
dev->fd=open(仅文件名);
如果(dev->fd<0)
USB\u错误\u STR(-errno,“无法打开%s:%s”,
文件名,strerror(errno));
}
返回0;
}
因此,它在打开时失败,并且每次都设置了errno。但我会像这样检查设备权限:
crw rw rw-1根根189,139 8月 26 10:38/dev/bus/usb/002/012
那么,是否有其他条件限制打开设备
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;