我正在研究Linux內核3.3
中的FAT
文件系統代碼。 對於一個項目,我需要在掛載文件系統的根目錄下在掛載時創建一個文件。我已經想出了在哪裏編寫代碼來創建它,但有幾個關於創建的問題。 (該功能是vfat_mount
,在linux/fs/fat/namei_vfat.c
中)。文件系統級別的文件創建
mount
函數似乎沒有掛載點作爲路徑,但我相信根目錄的dentry存儲在超級塊中。我不確定如何使用此可用數據創建文件。系統調用open()
似乎不是一個選項,所以我應該使用文件系統特定vfat_create
爲此目的?如果是這樣,有人可以幫助我更多的細節或一些例子。
此外,該文件需要跨越幾個羣集,我不希望文件系統搜索並分配空閒羣集。那麼有沒有辦法直接創建文件,還是應該在創建文件後使用類似fat_add_cluster()
的文件?
請考慮是否可以通過添加或修改用戶空間工具或守護程序來完成此操作。 –
我不太明白你的意思。但是如果我在文件系統級別之外做了任何改變,其他文件系統將會受到影響。 – Sankarnm
我的意思是不要試圖通過改變內核來做到這一點。完全在用戶空間中完成 - 即使用程序或守護進程。強烈建議從內核中訪問實際的磁盤文件。 –