我想列出一个文件夹,但是当我想打印文件名时,只有\ n是打印
void liste_folder(void)
{
DIR *dir;
struct dirent *test;
dir = opendir(".");
while (readdir(dir) != NULL)
{
test = malloc(sizeof(*test));
printf("%s\n", test->d_name);
free(test);
}
}
int main()
{
liste_folder();
}
答案 0 :(得分:1)
您正在为test
分配内存,但这并没有填充目录信息。 readdir
为您分配dirent
结构的内存,因此甚至不需要。将readdir
的返回值分配给test
代替:
while((test = readdir(dir)) != NULL){
printf("%s\n", test->d_name);
// the man page says you may not free the dirent
}