3

私はCプログラミングを始めたばかりで、ディレクトリ内のファイルを読み取って表示しようとしています(lsコマンドのように)。

これは、セグメンテーション違反が発生するコードの一部です。理由はわかりません。

void    display_dir(char *dir)
{
  DIR   *strm;
  struct dirent *direct;

  if((strm = opendir(dir) == NULL))
    {
      printf("ERROR: Couldn't open directory.\n");
      exit(1);
    }
while ((direct = readdir(strm)) != NULL)
    display_elems(direct);
  closedir(strm);
}

いくつかのテストの後、プログラムが次の段階に達したときに segfault が発生したようです。

while ((direct = readdir(strm)) != NULL)

私はいくつかの調査を行いましたが、私を助けることができるものは何も見つかりませんでした.

4

1 に答える 1