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()syscall によって呼び出されるため、同じ引数を持ちます。ファイル システム固有の関数を呼び出す必要はありません。同様に、ファイルの処理が完了したら、で閉じfilp_close()ます。

于 2012-05-02T11:13:04.243 に答える