日期:2014-05-16  浏览次数:20646 次

既然MAX_PATH等的值已经有了定义,为什么还要提供sysconf函数来动态的求?
和系统相关的很多常数值如MAX_PATH等在头文件里面都是已经有了定义的,为什么Posix系统还要提供一个像sysconf这样的函数来让我们动态的求得呢?

如果动态的求得最大的路径长度,和头文件里面定义的最大长度,数值不一样,那么究竟应该以哪个为准?
------解决方案--------------------
以sysconf为准,因为不同系统对于路径的支持长度其实是不同的。如果你的程序要编译到多个不同的系统,比如Linux、FreeBSD、Mac OS X。这个MAX_PATH其实是不兼容POSIX标准的。预先假定这个值,可能导致程序无法处理一些长路径。