[英]ioctl error when open char dev file
我正在写一个驱动程序代码,从x86读取一些寄存器值。当我运行我的用户空间应用程序时,我得到了以下错误。
ioctl:设备不适当的ioctl
这是代码嗅..
fd = open_drvfile();
if(ioctl(fd, IOCTL_MSR_CMDS, (long long)msr_start) == -1 ) {
perror("ioctl:");
exit (0);
}
和open_drvfile()只是打开(创建并打开)char文件,如下所示
fd = open("/dev/" DEV_NAME, O_RDWR|O_CREAT);
if (fd == -1) {
perror("Failed to open /dev/" DEV_NAME);
}
return fd;
可能有一点我错了吗?
char设备意味着它应该用mknod()
创建,而不是在open()
flags
下创建O_CREAT
(这将创建一个常规文件,而不是char设备)。
(见问题评论)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.