我目前正在尝试找到一种方法来搜索特定目录中的文件(在这种情况下是 /dev/shm,这部分不需要通配符)适合包含通配符的模式,例如我有一个有的目录
stack_review.txt stack_overflow.txt stack_servers.txt
在其中,我想返回所有符合模式 stack_*.txt 的结果,我该怎么做呢?我已经尝试了一些使用 readdir 的示例,但不幸的是还没有找到任何适用于此实现的方法,所以我非常感谢我能在这个问题上获得的任何帮助,谢谢!
你正在寻找glob()
. 来自http://linux.die.net/man/3/glob:
一个使用示例是以下代码,它模拟ls -l *.c ../*.c
在 shell 中键入:
glob_t globbuf;
globbuf.gl_offs = 2;
glob("*.c", GLOB_DOOFFS, NULL, &globbuf);
glob("../*.c", GLOB_DOOFFS | GLOB_APPEND, NULL, &globbuf);
globbuf.gl_pathv[0] = "ls";
globbuf.gl_pathv[1] = "-l";
execvp("ls", &globbuf.gl_pathv[0]);
元素可以嵌套在文件夹中吗?如果是这样,您的方法必须是递归的。