我运行此程序以输出当前工作目录的内容。我得到了错误的输出。程序在下面列出,我在之后发布的输出。
码
#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
int main ()
{
DIR *gdir = NULL;
gdir = opendir(".");
struct dirent *hdir = NULL;
//hdir.d_ino = 123;
//hdir->d_name[256] = NULL;
if (gdir == NULL)
{
printf ("Could not open directory.");
exit (3);
}
while ( hdir = readdir(gdir) )
{
if (hdir == NULL)
{
printf ("Could not read from directory.");
//printf ("%d\n", i);
exit (3);
//printf ("hdir.d_ino: %ld", hdir.d_ino);
}
else
{
printf ("Name: %25s\n", hdir->d_name);
}
//i++;
}
//printf ("%d\n", i);
closedir(gdir);
//printf ("hdir.d_reclen: %u", hdir.d_reclen);
system ("PAUSE");
return 0;
}
输出
Name:
Name:
Name:
Name:
Name: ry.c
请注意ry.c
文件扩展名为.c
的文件。这是当前工作目录中的一个文件。我不明白为什么只输出一个截断的文件名,而其他文件则不输出。
平台详情
我在Windows 8上安装了当前的mingw,用gcc编译。我正在使用Windows命令行进行编译。