如何避免在/ proc中双重创建目录?

时间:2017-04-28 20:34:44

标签: linux module linux-kernel linux-device-driver procfs

我正在编写Linux内核模块,我想创建一个子目录/ proc / foo /,然后在其中公开几个人工文件,这些文件将由我的模块动态生成。我知道我可以使用proc_mkdir来创建foo目录,但如果它已经存在,dmesg将显示警告,我更喜欢保持日志清洁。

现在你可能会想到一个模块拆解它应该删除/ proc / foo /树,以便永远不会发生冗余的mkdir。但是我正在研究一系列相关的内核模块,我想我们每个都会在/ proc / foo /中单独公开文件。也许这是非典型的?我没有在proc_fs.h中看到查询现有文件的任何功能,所以也许我会犯这个错误?

另一种选择是拥有一个只创建目录的模块,并让它导出一个包含proc_dir_entry的全局,然后我的所有模块都可以对该变量进行extern并使用它。但后来我不得不担心该模块会在所有其他模块之前加载。但也许这就是通常的做法?我很想知道最佳做法是什么。

1 个答案:

答案 0 :(得分:1)

很奇怪。如果你真的想要所有分组的东西,只需创建一个提供/ proc / foo的模块,并让其他所有东西都依赖它。