繁体   English   中英

打开char dev文件时出现ioctl错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM