截断当前工作目录中的文件输出

时间:2015-09-12 00:48:40

标签: c directory mingw

我运行此程序以输出当前工作目录的内容。我得到了错误的输出。程序在下面列出,我在之后发布的输出。

#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命令行进行编译。

0 个答案:

没有答案