目錄的 od 模擬

目錄的 od 模擬

我想知道為什麼 od(1) 曾經在 UNIX 中工作但在 GNU/Linux 中不起作用。有一個很好的答案伺服器故障。下一個問題是,您是否知道有任何工具可以模擬 od 行為以支援在 GNU/Linux 中轉儲目錄資料?

答案1

Linux 不允許您執行普通操作read(dir_name, buffer, sizeof(buffer)- 它總是返回 -1 並將 EISDIR 放入errno.這可能是合理的,因為並非所有檔案系統都將目錄作為檔案。例如,常用的 reiserfs 就沒有。

您可以使用open()C 程式中的系統呼叫來取得目錄的檔案描述符,但readdir(3)(從 libc 中)呼叫之類的東西getdents(2)可以實際檢索目錄條目。每個檔案系統實作中可能都有程式碼,可以struct linux_dirent根據檔案系統用來儲存目錄條目的任何內容(檔案、資料庫、磁碟上的 B 樹)進行建立。

相關內容