2010-09-01 151 views
0

這涉及讀取目錄.FS_info。使用readdir()。我正在嘗試閱讀.FS_info。目錄和readdir()未能做到這一點。我怎樣才能成功讀取這個特殊的目錄?readdir()讀取失敗.FS_info

+1

它返回什麼錯誤?你可以發佈一些代碼嗎? – dirkgently 2010-09-01 16:39:22

+0

你應該正確地標記你的問題,或者至少說明你的工作環境,作爲你的問題的一部分。 C本身沒有'readdir'功能。 – 2010-09-01 19:49:33

+0

對'readdir'的調用失敗之後,使用'perror()'來更多地瞭解調用失敗的原因。 – jkramer 2010-09-10 10:19:31

回答

1

從POSIX規格:

成功完成後,READDIR()返回一個指針型結構的dirent的對象。遇到錯誤時,將返回空指針並將errno設置爲指示錯誤。

換句話說,errno應該告訴你究竟是什麼問題。

我最好的猜測是,一個名爲.FS_info的目錄很可能包含有關文件系統本身的一些系統級信息,並且可能不希望用戶在那裏進行瑣事。

但是,爲什麼文件系統實施者會保護這一點,而不需要額外的代碼使它看不見將是一個謎。

底線,檢查errno。如果這不能讓您滿意,請發佈展示此行爲的最短pcomplete程序以及有關您的環境(操作系統,文件系統類型,目錄所在的目錄,編譯器,庫等等)的詳細信息。