基本上,到目前为止我有这段代码:
#include <glob.h>
#include <string.h>
#include <stdio.h>
# define ERROR 1
# define FAILURE -1
int main(int ac, char **av)
{
glob_t globlist;
int i;
i = 0;
if (ac == 1)
return (-1);
else
{
if (glob(av[1], GLOB_PERIOD, NULL, &globlist) == GLOB_NOSPACE
|| glob(av[1], GLOB_PERIOD, NULL, &globlist) == GLOB_NOMATCH)
return (FAILURE);
if (glob(av[1], GLOB_PERIOD, NULL, &globlist) == GLOB_ABORTED)
return (ERROR);
while (globlist.gl_pathv[i])
{
printf("%s\n", globlist.gl_pathv[i]);
i++;
}
}
return (0);
}
当我输入例如
./a.out "*"
时,它会打印我所在的所有文件和目录,但不会打印目录中的内容。我应该如何做才能打印包括子文件/文件夹在内的所有文件?谢谢
main
函数返回-1
。在“成功”时返回0
,在“失败”时返回小于256的正值。这是因为在POSIX系统(包括Linux、OSX和所有现代Unix系统)中,高位具有特殊含义。 - Some programmer dudedirent.h
中原型化的函数。 - alkglob
代码放入一个函数中(而不是在main()
中)。同时,我同意有关使用return()
的建议。祝你好运。 - shellter