如何循環遍歷FUSE文件系統超級塊中的inode?文檔沒有說明這一點。FUSE文件系統操作
回答
您可以通過在活動FUSE實例的掛載點處調用nftw()
來遍歷可見列表(具有條目的列表)。您提供的回調將給出文件系統中每個條目的路徑和struct stat
。您可以通過對返回路徑的系統調用與相應的inode進行交互。
製作'nftw'。我相信它略微更加靈活,並且意味着過時的簡單'ftw'。 –
FUSE不是文件系統,也不包含傳統的inode。最好將其視爲實現與UNIX文件系統API提供的相反的內容。例如,當你打開一個文件時,你生成一個文件打開系統調用。內核然後接受該系統調用並返回一個文件。
FUSE做的是從內核將系統調用重定向到用戶空間中的FUSE應用程序。然後,應用程序決定如何響應該系統調用並將某些內容返回給內核。內核然後將該響應傳遞迴原始調用應用程序。
在許多情況下,當您使用FUSE安裝某些東西時,您並未安裝物理介質。在FUSE文件系統中打開文件時,可能會在某個實際文件系統上創建臨時文件,將數據複製到該文件,然後將FUSE文件上的大多數文件操作調用重定向到其創建的臨時文件。
大多數FUSE應用程序實現stat,並提供大多數真實INODE結構可能具有的信息,但是,這些信息通常不具有指向它的指針方面。
從技術的角度來看,您可以在FUSE中實現類似EXT3的操作,在這裏將EXT3文件系統作爲掛載參數進行掛載。在這種情況下,你可以想象真正的INODES,可能會帶有實際的INODE指針。然而,EXT3的實現可能相當不受歡迎,因爲每個文件系統調用都會涉及從用戶空間到內核到FUSE用戶空間到內核到FUSE用戶空間到內核,然後最終返回到您的應用程序。對於性能不重要的文件系統,FUSE更有意義。
好的,謝謝。我認爲馬特有我解決之後的解決方案。 – atx
- 1. 支持在FUSE文件系統中使用FUSE-J寫入操作
- 2. 操作文件系統
- 3. 從FUSE文件系統訪問數據
- 4. Linux的能力在FUSE文件系統
- 5. 內存中FUSE文件系統
- 6. FUSE文件系統隱藏鸚鵡螺
- 7. 像文件系統一樣的FUSE
- 8. 在Windows操作系統中的pathos軟件包操作系統
- 9. FUSE文件系統監視任何創建/刪除的文件
- 10. FUSE-記錄文件打開時間 - 文件系統
- 11. 從Jboss Fuse/Karaf文件系統中加載屬性文件Nullpointer
- 12. 操作系統
- 13. 操作系統如何控制文件?
- 14. iPhone文件系統操作問題
- 15. glibc:elf文件操作系統ABI無效
- 16. 訪問Android操作系統根文件
- 17. 重命名操作系統文件
- 18. 在操作系統中搜索文件
- 19. 文件系統操作確實「刷新」
- 20. 記錄Hadoop的文件系統操作
- 21. 二進制文件和操作系統
- 22. 文件I/O操作系統處理
- 23. 讓操作系統刪除文件
- 24. 操作系統 - SSD上的文件系統與旋轉
- 25. 自定義樹莓派操作系統文件系統
- 26. 與操作系統無關的文件系統訪問
- 27. 操作系統文件系統塊大小?
- 28. Adobe AIR和不同的操作系統文件系統
- 29. 與操作系統無關的API來監視文件系統?
- 30. 如何在基於Fuse的自定義文件系統中捕獲複製/移動文件操作?
你是什麼意思*循環inodes *? – kamae
我的意思是我希望能夠有一個指向每個inode的指針 - 可能是某種結構。 – atx
FUSE是一個接口,而不是文件系統。由FUSE後端表示的虛擬文件系統可能沒有inode或超級塊,並且它可能根本無法以可枚舉的方式表示文件。 (例如,編寫一個包含每個可能的文件名的FUSE文件系統是容易的,每個文件都包含它的名字。) – duskwuff