ioctl什么时候会调用失败,而且返回-1


在测试程序中打开文件正常,也比较肯定调用ioctl要传进去的参数没有传错,但是返回值为-1,看了下linux源码,也没发现有什么特别的地方,想请教一下通常情况下是什么导致调用失败?

Linux 驱动

爱撒旦韩国ia 12 years, 4 months ago

首先请检查open、read之类的正确。之后,
你的ioctl要是自己定义的cmd,需要同时在内核态以及用户态建立描述这个cmd的头文件。否则乱传cmd自然不能匹配。
cmd里包含你的ioctl的参数类型(是否有参数,参数是只传递进内核;还是只从内核取;还是既传递进内核又从内核取)以及混淆
具体cmd的定义你可以很容易到内核源码里找到例子,grep -rni "ioctl" ./drivers
跟着学就好了

colray answered 12 years, 4 months ago

Your Answer