1

我正在研究FATLinux Kernel 中的文件系统代码3.3。对于一个项目,我需要在挂载时在挂载文件系统的根目录中创建一个文件。我已经想出了在哪里编写代码来创建它,但是有一些关于创建的问题。(函数vfat_mount在 中linux/fs/fat/namei_vfat.c)。

mount函数似乎没有将挂载点作为路径,但我相信根目录的dentry存储在超级块中。我不确定如何使用这些可用数据创建文件。系统open()调用似乎不是一个选项,所以我应该vfat_create为此目的使用特定的文件系统吗?如果是这样,有人可以帮助我提供更多细节或一些例子。

此外,该文件需要跨越几个集群,我不希望文件系统搜索并为其分配空闲集群。那么有没有办法直接以这种方式创建文件,或者我应该fat_add_cluster()在创建文件后使用类似的东西?

4

1 回答 1

0

您可以直接调用filp_open()在 fs/open.c 中定义和导出的函数。它实际上是由open()系统调用调用的,因此具有相同的参数。无需调用文件系统特定的函数。同样,一旦你完成了文件,用 关闭它filp_close()

于 2012-05-02T11:13:04.243 回答