参考glibc函数scandir()
documentation:
scandir()
的第3个参数是一个指向函数的指针,该函数接受类型const struct dirent*
的单个参数 - 该函数(如果提供)选择要包含在结果中的目录条目。
=>细
scandir()
的第4个参数是一个指向函数的指针,该函数接受类型为const struct dirent**
的两个参数 - 该比较函数用于对结果进行排序。
=>为什么这些参数的类型不是const struct dirent*
,就像第三个参数一样?为什么是双指针?!如果有人找到双指针的原因,为什么双指针未声明为const
,如下所示:const struct dirent*const*
?比较函数不应该改变目录条目的顺序。
(当然,只有当您提供自己的功能时,您才需要担心scandir()
的第四个参数 - 通常是alphasort()
或versionsort()
或NULL
(没有排序),幸运的是......)