scandir()的原型是否破碎?

时间:2015-02-17 13:27:39

标签: c pointers const glibc scandir

参考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(没有排序),幸运的是......)

0 个答案:

没有答案