私がテストしているこのコードは、現在の作業ディレクトリにあるファイルのリストを提供します。
#include <stddef.h>
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
int main (void)
{
DIR *dp;
struct dirent *ep;
dp = opendir ("./");
if (dp != NULL)
{
while (ep == readdir (dp))
{
puts (ep->d_name);
(void) closedir (dp);
}
}
else
puts ("Couldn't open the directory.");
return 0;
}
コードは機能しますが、GCC でコンパイルすると、関数で初期化せずに変数ep
が使用される可能性があるという警告が表示されます (私はスペイン語で GCC を使用します) 。
この警告を回避するために変数に勇気を与えようとしましたがep
(プログラミングの良い習慣です)、そうすると、プログラムは本来の動作をしなくなります。
何が起こっているのか、または何が間違っているのか分かりますか?