myglob
时间:2010-12-27 来源:xinxianhui
今天完成了一个能查找指定目录下的文件名和文件类型的程序。主要使用了glob函数。程序完成的任务:显示当前目录下的所有文件。
#include <stdio.h>
#include <stdlib.h>
#include <glob.h>
#define PAT1 "./*"
#define PAT2 "./.*"
int
main()
{
glob_t glob_result;
int ret, i;
//ret = glob(PAT1, GLOB_NOSORT|GLOB_NOCHECK, NULL, &glob_result);//GLOB_NOSORT falg使得结果不进行排序。默认会排序。
ret = glob(PAT1, GLOB_NOCHECK, NULL, &glob_result);//
if (ret!=0) {
fprintf(stderr, "Error.\n");
exit(1);
}
ret = glob(PAT2, GLOB_NOSORT|GLOB_NOCHECK|GLOB_APPEND, NULL, &glob_result);//GLOB_APPEND flag实现了第二次条用glob函数时可以把结果追加到第一次条用时的后面。一般这个flag不会在第一次调用的时候使用。
ret = glob(PAT2, GLOB_NOSORT|GLOB_NOCHECK, NULL, &glob_result);
if (ret!=0) {
fprintf(stderr, "Error.\n");
exit(1);
}
for (i=0; i<glob_result.gl_pathc; ++i) {//多次调用glob函数其结果会汇总到同一个变量中。所以在最后使用一次for循环即可。
puts(glob_result.gl_pathv[i]);
}
printf("1 = %d\n", i);
globfree(&glob_result);//切记此处不要忘记释放glob空间
return 0;
}