【问题标题】:Segfault with readdir()带有 readdir() 的段错误
【发布时间】:2013-05-06 03:51:11
【问题描述】:

我刚开始使用 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)

我做了一些研究,但没有找到任何可以帮助我的东西。

【问题讨论】:

    标签: c segmentation-fault opendir


    【解决方案1】:
    if((strm = opendir(dir) == NULL))
    

    括号嵌套错误。应该是:

    if((strm = opendir(dir)) == NULL)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多