scandir() 的第四个参数如何工作?

How does the 4th argument of scandir() work?

scandir() 的定义如下所示:

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

什么是compar?我通过那里的回调有什么区别?手册页似乎没有说什么。在那里传递 NULL 安全吗?有人可以向我解释第四个参数的目的和用法吗?我已经做了我的研究,但没有找到任何有用的信息所以,好吧,我在这里。

它确定项目列出的顺序,与 qsort 类似。传递 NULL 是未定义的行为。感谢评论。