在limits.h中,以及POSIX联机帮助页中的各个位置,都有对PATH_MAX和NAME_MAX的引用.
这些如何相互关联?
他们的官方文件在哪里?
如何在运行时获取它们,以及(在相关时)编译C,Python和GNU(shell)环境的时间?
最佳答案
PATH_MAX是
文件系统路径的最大长度. NAME_MAX是
文件名的最大长度(在特定位置).因此,/ foo / bar受PATH_MAX限制,只有条形部分的长度受NAME_MAX限制.
您可以通过pathconf在运行时获取这些内容,如_PC_PATH_MAX和_PC_NAME_MAX,尽管标准做法通常只是在编译时使用静态宏.我认为使用运行时选项会更好,因为你可能会以这种方式支持更长的值,但我不确定什么(如果有的话)系统实际上提供了来自pathconf的返回值,该值大于POSIX_FOO_MAX的值值.