为什么python的fcntl.ioctl调用会出现无效参数错误
我正在尝试在Python中使用命令 fcntl.ioctl
,这个命令来自于Python的 fcntl包,我想用以下方式来调用它:
buf = array.array('h', [0])
fcntl.ioctl(file_handler, 21780)
fcntl.ioctl(file_handler, 21780, buf)
fcntl.ioctl(file_handler, 21780, buf, 1)
也就是说,我尝试了它的三种版本,file_handler
是用 open
创建的文件处理器。但每次调用都会给我同样的错误:
IOError: [Errno 22] Invalid argument
简单的问题是:我该如何正确地调用 fcntl.ioctl
?或者我可以用 fcntl.fcntl
来代替吗?
1 个回答
1
看起来你用错文件了。你给的C代码示例提到的是 /dev/bus/usb/<bus_id>/<device_id>
,而不是 /dev/ttyACM0
。