在文件夹C语言中筛选文件名的扫描程序

在文件夹C语言中筛选文件名的扫描程序,c,scandir,C,Scandir,我在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 diren

我在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 **));

它对我有用吗?

是的,filter参数是一个函数指针,允许您传入一个函数来过滤结果。您可能希望编写一个类似下面的函数,并将其作为筛选器的值按名称传递

int file_select(const struct dirent *entry)
{
   return strcmp(entry->d_name, "exe");
}

你回来不对!它应该是
return(0==strcmp(entry->d_name,“exe”);