python 操作不被允许 (graphtecprint)

0 投票
2 回答
1234 浏览
提问于 2025-04-15 21:59

我正在运行一个Python程序。当程序执行到以下几行时:
f = open("/dev/bus/usb/007/005", "r")
x = fcntl.ioctl(f.fileno(), 0x84005001, '\x00' * 256)
它失败了,并显示错误信息:
IOError: [Errno 1] 操作不被允许
这可能是什么原因呢?

2 个回答

0

在使用 fcntl.ioctl 的时候,第三个参数应该是一个1024字节的字符串(不是256字节),或者更好的是一个可以写入的更大一点的 缓冲区。这个缓冲区的底层对象可以是一个 字节数组。不过,你需要提前知道结果需要多少空间,但为了保险起见,可以准备几KB的空间(这个ioctl似乎是用来“获取设备ID”的代码,但我不确定最大结果长度会是多少)。

1

文件系统权限是什么?

命令 ls -l /dev/bus/usb/007/005 会显示什么?

命令 cat /dev/bus/usb/007/005 能正常工作吗?还是会报同样的错误?

撰写回答