C - 问题与 readdir 一起列出



我想列出一个文件夹,但是当我想打印文件名时,只有打印

void    liste_folder(void)
{
  DIR           *dir;
  struct dirent *test;
  dir = opendir(".");
  while (readdir(dir) != NULL)
    {
      test = malloc(sizeof(*test));
      printf("%sn", test->d_name);
      free(test);
    }
}
int     main()
{
  liste_folder();
}

您正在为test分配内存,但这不会用目录信息填充它。 readdir为您分配dirent结构的内存,因此甚至没有必要。将 readdir 的返回值分配给test

while((test = readdir(dir)) != NULL){
    printf("%sn", test->d_name);
    // the man page says you may not free the dirent
}

相关内容

  • 没有找到相关文章

最新更新