ディレクトリ内にあるファイルのリストを取得する必要がある C プロジェクトに取り組んでいます。dirent.h を使用していますが、動作に問題があり、Linux でプログラムをビルドしています。
プログラムをビルドしようとすると、次のエラーが表示されます
myClass:error: âDIRâ undeclared (first use in this function)
myClass:408: error: (Each undeclared identifier is reported only once
myClass:408: error: for each function it appears in.)
myClass:408: error: âdirâ undeclared (first use in this function)
myClass:410: warning: implicit declaration of function âopendirâ
myClass:413: warning: implicit declaration of function âreaddirâ
myClass:413: warning: assignment makes pointer from integer without a cast
myClass:415: error: dereferencing pointer to incomplete type
myClass:417: warning: implicit declaration of function âclosedirâ
以下は私が使用しているコードです
int logMaintenance(void *arg)
{
DIR *dir;
struct dirent *ent;
dir = opendir(directory);
if (dir != NULL)
{
while ((ent = readdir (dir)) != NULL)
{
printf("%s\n", ent->d_name);
}
closedir(dir);
}
else
{
printf("Failed to read directory %i", EXIT_FAILURE);
}
return 0;
}
特に、Liunux の dirent.h ヘッダー ファイルをインクルードしたときに DIR が宣言されていないと表示された場合、これらのエラーの意味がわかりません。
ご協力いただきありがとうございます。