如何使用C搜索文件

如何使用C搜索文件,c,file-io,C,File Io,在过去的几天里,我一直在寻找一种基于模式(*-stack.txt)搜索文件的方法,并且一直很难找到这样做的方法,我说我想知道是否有人知道这样做的方法?已经在google等网站上搜索过,但找不到任何有用的东西:/这只用于在linux目录中搜索符合特定模式的文件 (目录加输出的示例) 我认为您应该使用opendir系统调用,如中所述 但除此之外,还需要做更多的工作,因此更高级的语言可以提供更好的接口。您最好的选择可能是。它几乎完全符合你的要求。根据你所说的,正确代码的草图是 char glob_pa

在过去的几天里,我一直在寻找一种基于模式(*-stack.txt)搜索文件的方法,并且一直很难找到这样做的方法,我说我想知道是否有人知道这样做的方法?已经在google等网站上搜索过,但找不到任何有用的东西:/这只用于在linux目录中搜索符合特定模式的文件

(目录加输出的示例)


我认为您应该使用
opendir
系统调用,如中所述

但除此之外,还需要做更多的工作,因此更高级的语言可以提供更好的接口。

您最好的选择可能是。它几乎完全符合你的要求。根据你所说的,正确代码的草图是

char glob_pattern[PATH_MAX];
glob_t glob_result;
snprintf(glob_pattern, PATH_MAX, "%s/%s", directory, file_pattern);
glob(glob_pattern, 0, NULL, &glob_result);
for (size_t i = 0; i < glob_result.gl_pathc; ++i) {
  char *path = glob_result.gl_pathv[i];
  /* process path */
}
charglob_模式[PATH_MAX];
glob_t glob_结果;
snprintf(全局模式,路径最大,“%s/%s”,目录,文件模式);
glob(glob_模式、0、NULL和glob_结果);
对于(大小i=0;i
char glob_pattern[PATH_MAX];
glob_t glob_result;
snprintf(glob_pattern, PATH_MAX, "%s/%s", directory, file_pattern);
glob(glob_pattern, 0, NULL, &glob_result);
for (size_t i = 0; i < glob_result.gl_pathc; ++i) {
  char *path = glob_result.gl_pathv[i];
  /* process path */
}