では、ファイル内にファイルがある場合を除き、再帰的にファイルとディレクトリをLINUX環境で実行します。 私の関数foo
は、現在のディレクトリからすべてのファイルをリストする)。再帰的なCファイルのリスト_dir内のファイルに対して_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()'のような関数が失敗すると、 'stderr'にエラーを出力するために' perror( "stat"); 'を使います。 – caf