我想知道是否可以在Linux内核中列出给定文件夹中的文件和文件夹。我打赌有办法。
我已经在网上搜索了几次,但仍然无法做到。
谢谢!
答案 0 :(得分:0)
反应你的评论:你的问题不是文件阅读,而是获取目录的条目。关于你的最后一句话:是的,每个文件系统都实现了readdir()
函数,所以它与文件系统无关。
在我看来,您需要执行以下步骤:
研究,如何编写内核模块。网上有很多教程,包括带有好评的例子的分步教程。
编写一个简单的模块,printk()
- 在其初始化函数中有一些简单的文本。
研究,如何从内核模块调用系统调用。它可能不是那么简单,比如来自用户空间,但几乎肯定是可能的。
通过模块参数中目录路径的最简单方法。 Linux内核模块可以有多个参数,其处理非常自动化(实际上,您可以直接将参数名称绑定到模块中的静态变量)。
在您的模块可以调用系统调用并输入之后,您现在可以通过opendir()
调用在其init函数中打开此目录。然后阅读其内容(请参阅readdir()
),最后使用printk()
输出结果。
可能存在一些障碍,例如,你可能无法使用模块初始化函数中的系统调用,或类似的,但它们都不会真的很难。