Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux ioctl返回-1,errno设置为EPERM_Linux_Linux Device Driver - Fatal编程技术网

Linux ioctl返回-1,errno设置为EPERM

Linux ioctl返回-1,errno设置为EPERM,linux,linux-device-driver,Linux,Linux Device Driver,我有一个调用ioctl()的C程序,但它返回-1,并将errno设置为EPERM。 但我已将该文件的模式更改为“777” 你能告诉我为什么ioctl()仍然返回-1,errno设置为EPERM?是的,EPERM(不允许操作)错误表明你没有足够的权限执行操作。正如liw.fi所建议的,请尝试使用root权限执行,或者告诉我们要执行的操作。您正在调用ioctl的设备可能包含一些代码,这些代码在执行您请求的操作之前检查功能。在这种情况下,将特殊文件的权限设置为777是不够的。如果您想深入了解支持所讨论

我有一个调用ioctl()的C程序,但它返回-1,并将errno设置为EPERM。 但我已将该文件的模式更改为“777”


你能告诉我为什么ioctl()仍然返回-1,errno设置为EPERM

是的,EPERM(不允许操作)错误表明你没有足够的权限执行操作。正如liw.fi所建议的,请尝试使用root权限执行,或者告诉我们要执行的操作。

您正在调用ioctl的设备可能包含一些代码,这些代码在执行您请求的操作之前检查功能。在这种情况下,将特殊文件的权限设置为777是不够的。如果您想深入了解支持所讨论设备的驱动程序的源代码,您可以查找以下内容,以了解实际需要的功能

if (! capable (CAP_SYS_ADMIN))
    return -EPERM;
您可能希望了解功能,或者按照其他人的建议以root用户身份运行应用程序


告诉我们您试图调用什么ioctl、使用什么参数以及在什么设备上。ioctl几乎可以做任何事情。你是文件的所有者吗…试试sudo chown你的名字