我正在尝试创建一个内核模块,它要求我在内核空间中打开一个文件。我正在使用filp_open用于此目的,下面是我试图调试的代码snipet。
struct file *f = NULL;
mm_segment_t oldfs;
oldfs = get_fs();
set_fs(get_ds());
f = filp_open("/home/abhijeet/project/in",O_RDONLY,0);
set_fs(oldfs);
if(!f->f_op->read)
printk(KERN_INFO "File System does not allow reads.\n");
我收到“文件系统不允许读取”。错误。我在内核4.4.131
的虚拟机中执行此操作答案 0 :(得分:0)
__ vfs_read从4.17rc5开始(不要有4.4方便,但可能会有类似的东西):
<a-marker type='pattern' url='patterns/w.patt'>
</a-marker>
如您所见 - &gt; read不是从文件中读取的唯一方法。你为什么检查这个指针?
从内核模块中读取文件通常是个坏主意。请解释一下你需要什么。