我在C中使用scandir()函数,在我需要获取文件名正好=“exe”的文件的文件夹中。
如何过滤scandir返回的条目?
scandir的第三个参数是filter:
int scandir(const char *dirp, struct dirent ***namelist,
int (*filter)(const struct dirent *),
int (*compar)(const struct dirent **, const struct dirent **));
这对我的目的有用吗?
答案 0 :(得分:8)
是的,filter参数是一个函数指针,允许您传入一个函数来过滤结果。您可能希望编写类似下面的函数,并按名称将其作为filter的值传递。
int file_select(const struct dirent *entry)
{
return strcmp(entry->d_name, "exe");
}