gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:47 24 4
gpt4 key购买 nike

我正在编写驱动程序代码,以从 x86 读取一些寄存器值。当我运行我的用户空间应用程序时,出现以下错误。

ioctl:Inappropriate ioctl for device

这里是代码嗅探..

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;

可以指出我在这方面犯了错误吗?

最佳答案

字符设备意味着它应该使用 mknod() 创建,而不是使用 open() 标志下的 O_CREAT (这将创建一个常规文件,而不是一个字符设备)。

(见问题评论)。

关于c - 打开 char dev 文件时出现 ioctl 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38764477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com