,往下一層層地遞歸式遍歷子目錄。ftw()會傳三個參數給fn(), 第一個參數*fpath指向當時所在的目錄路徑,第二個參數是*sb, 為stat結構指針,第三個參數為flag,有下面幾種可能值
FTW_F 一般檔案
FTW_D 目錄
FTW_DNR 不可讀取的目錄,此目錄以下將不被遍歷
FTW_SL 符號連線
FTW_NS 無法取得stat結構數據,有可能是許可權問題
最後一個參數depth代表ftw()在進行遍歷目錄時同時打開的檔案數。ftw()在遍歷時每一層目錄至少需要一個檔案描述詞,如果遍歷時用完了depth所給予的限制數目,整個遍歷將因不斷地關檔案和開檔案操作而顯得緩慢。(實際做測試的時候未發現...)
如果要結束ftw()的遍歷,fn()只需返回一非零值即可,此值同時也會是ftw()的返回值。否則ftw()會試著走完所有的目錄,然後返回0
,全部遍歷則返回0,若有錯誤發生則返回-1
,請使用正常方式(fn函式返回非零值)來中斷遍歷,不要在fn函式中使用longjmp()