Mac OS X Lion:最大路径长度是多少?

时间:2011-08-21 19:31:58

标签: macos path filesystems osx-lion

我无法找到这些信息,而且反复试验告诉我价值非常高。所以我想我要求社区看看是否有人知道并且可以指向一个确认Lion长度的苹果页面。我所知道的是它比Snow Leopard更大。

4 个答案:

答案 0 :(得分:11)

老了,但我找到了答案:

#include <sys/syslimits.h>

然后它将PATH_MAX常量作为#define。就我而言,

char filenameBuffer [PATH_MAX];

您可以将1024硬编码为最大路径,但使用类似的常量可以使您的代码可以使用新版本进行扩展

答案 1 :(得分:9)

限制取决于使用的文件系统 - 默认情况下OSX使用HFS Plus ...

我可以指出的唯一官方文件是HFS Plus spec,它记录了文件名长度的限制为255.

Wikipedia暗示HFS Plus上的最大路径长度是“无限制”。

或许联系Apple Dev支持是获得有关限制的确切陈述的最可靠方式。

答案 2 :(得分:6)

根据Mac OS X Yosemite的实际测试,最大路径长度为1016个字符。 1017失败了。

答案 3 :(得分:0)

将此命令复制并粘贴到MacOSX的终端应用程序(或iTerm2,xterm等)中

bash $ cc -dM -E -xc - <<< '#include <sys/syslimits.h>' | grep -i ' [NP]A.._MAX'

⟨返回⟩ ⟨enter 键运行它并得到结果:< / p>

#define NAME_MAX 255
#define PATH_MAX 1024

这些最大的名称路径长度为 在系统头文件sys/syslimits.h中定义 cc(C编译器)从某个默认位置读取的内容 例如/ usr / include /或Xcode应用程序中的某个位置。 神秘的开关记录在man cc中,但 本质上,此示例编译一个单行程序,然后 将所有“宏”定义打印到到grep的管道中 它应该过滤掉我们想要看到的所有行。沿着man grep到兔子洞下,以获取有关与正则表达式进行模式匹配的详细信息。同样,

bash $ cc -dM -E -xc - <<< ''

编译一个空程序,并打印该特定系统和编译器特有的所有标准“宏”定义-绝对值得一看。