我想在内核模块中保存一些信息。我在stackoverflow中看到了与我类似的问题,但是我的略有不同。假设我正在使用this code写入/ proc文件。我应该如何在我的内核模块之一中调用它?我有一个名为mymodule
的自定义内核模块,它不是主文件(没有init_module()),下面的函数被调用。在这种情况下,函数的输入值应为file
的值?基本上可以在内核模块中创建/ proc文件吗?
int procfile_write(struct file *file, const char *buffer, unsigned long count,
void *data)
绝对有可能在内核模块中添加proc条目,但是您可能会误解内核中文件处理的工作原理。
当您在proc中创建文件时,实际上并没有像在用户空间中那样'创建'文件。您正在注册一些在用户空间程序请求文件时调用的回调。
这意味着,当用户空间程序请求读取时,您的文件读取回调必须提供数据。当用户空间程序请求写操作时,您的文件写回调必须处理它。
如果要像使用常规文件一样使用它来存储信息,则必须分配所需的空间,并从那里读取回调副本数据。
清晰且相同的信息。有关实施和细节的更多说明。我在这里找到了一个很好的例子。