为什么python的fcntl.ioctl调用会出现无效参数错误

1 投票
1 回答
2115 浏览
提问于 2025-04-17 14:19

我正在尝试在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

撰写回答