在C
,在LINUX環境中遞歸地瀏覽文件和目錄 我的功能foo
工作,除非目錄中有文件(我的功能的誰點是列出當前DIR中的所有文件)。遞歸c文件列表_ stat()函數失敗的文件內的目錄
它不打印任何目錄內的文件,因爲
if((err=stat(full_child_entity_path,childStat)) <0)
失敗。我已經有這個問題好幾天了。任何人都可以嘗試解釋爲什麼此功能 失敗?
注意:我具有所有文件和目錄的完全訪問權限,文件/目錄具有完整的權限。
感謝先進!
int foo(char* dir_location)
{
if((err=stat(full_child_entity_path,childStat)) <0)
{
printf("Some sort of error with getting file stat %d <%s>\n",err,childDirent->d_name);
}
opendir()
while {readdir()!=null}
if(strcmp(childDirent->d_name,".")==0 || strcmp(childDirent->d_name,"..")==0) continue;
if(S_ISREG(childStat->st_mode)) printf("name of file");
else if(S_ISDIR(childStat->st_mode)) foo("concatinate dir_location+"/"+childDirent->name);
}
此代碼不可編譯。它真的是你有錯誤的代碼嗎?請複製並粘貼,不要從內存中重新輸入。 – bdonlan
當像'stat()'這樣的函數失敗時,使用'perror(「stat」);'將錯誤輸出到'stderr'。 – caf