/*
#include <glob.h>
int glob(const char *pattern, int flags,
int (*errfunc) (const char *epath, int eerrno),
glob_t *pglob);
void globfree(glob_t *pglob);
功能:Linux文件系统中路径名称的模式匹配,即查找文件系统中指定模式的路径。
参数:
pattern: 匹配模型。如/*是匹配根文件下的所有文件(不包括隐藏文件,要找的隐藏文件需要从新匹配)
errfunc: 选择匹配模式。
errfunc::查看错误信息用,一般置为NULL
pglob:存放匹配出的结果
*/
#include <stdio.h>
#include <glob.h>
int glob_test(void)
{
glob_t buf;
int i;
glob("/dev/*", GLOB_NOSORT, NULL, &buf);
for(i=0; i < buf.gl_pathc; i++)
{
printf("buf.gl_pathv[%d]= %s \n", i, (buf.gl_pathv[i]));
}
globfree(&buf);
return 0;
}
void print_gl(glob_t *gl)
{
int i = 0;
for(i=0; i<gl->gl_pathc; i++)
{
puts(gl->gl_pathv[i]);
}
}
void glob_demo(int argc , const char **argv)
{
glob_t gl;
int i = 0;
for(i=1; i<argc; i++)
{
gl.gl_offs=0;
glob(argv[i], GLOB_TILDE, 0, &gl);
print_gl(&gl);
globfree(&gl);
}
}
int main(int argc, const char *argv[])
{
// glob_test();
if(argc < 2)
{
fprintf(stderr, "%s <src_file>\n", argv[0]);
return -1;
}
glob_demo(argc, argv);
return 0;
}