6

我在 C 中使用 scandir() 函数,在我需要获取文件名完全为 =“exe”的文件的文件夹上。

如何过滤 scandir 返回的条目?

scandir 的第三个参数是过滤器:

int scandir(const char *dirp, struct dirent ***namelist,
       int (*filter)(const struct dirent *),
       int (*compar)(const struct dirent **, const struct dirent **));

它对我的目的有用吗?

4

1 回答 1

9

是的,filter 参数是一个函数指针,可让您传入一个函数来过滤结果。您可能想要编写如下所示的函数,并通过名称将其作为过滤器的值传递。

int file_select(const struct dirent *entry)
{
   return strcmp(entry->d_name, "exe");
}
于 2013-07-12T13:50:05.433 回答