C 段错误 :11

标签 c directory segmentation-fault

当引入的参数导致使用这部分代码时,我收到段错误:11:

else
{
  directoria = opendir (argv[2]);
  if (directoria == NULL) 
    {
      printf ("Não foi possível abrir a directoria '%s' ou esta não contém ficheiros.\n", argv[2]);
    }
  else
    {
      while ((ficheiro = readdir (directoria)) != NULL)
    {
      sprintf(guardar, "%s/%s", argv[2], ficheiro->d_name);
      stat (guardar, &dados);
      printf ("%7d", dados.st_size);
      tempbon = dados.st_mtime;
      t = localtime (&tempbon);
      strftime(tempo, 80, "%b %d %H:%M", t);
      printf (" %s", tempo); 
      printf (" %s\n", ficheiro -> d_name);
    }
    }
  closedir (directoria);
}

我可以发布完整的代码或您认为必要的任何其他解释。我很感谢您也提供的任何意见。

最佳答案

我认为如果directoria为NULL,您仍然会执行closedir (directoria);,这将取消引用空指针并导致段错误。

关于C 段错误 :11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20481566/

相关文章:

c - 如何在没有makefile的情况下链接不同目录中的对象?

c - 如何在 C 语言中获取 alt 和 control 键的扫描码?

java - 无法访问其中包含句点的文件夹

c - 进行矩阵乘法时 C 中的段错误

c - 多进程环境中的多读单写同步?

c++ - 将文件添加到 GNU 依赖列表?

javascript - 使用 GoLang http.FileServer 时找不到 React 脚本

iphone - 以编程方式在 iPhone 联系人列表中添加联系人

C: "Invalid free(): Address 0x7feffee08 is on thread 1' s 堆栈”

c++ - 自定义 QDialog 在 exec() 时导致段错误