我无法找到这些信息,而且反复试验告诉我价值非常高。所以我想我要求社区看看是否有人知道并且可以指向一个确认Lion长度的苹果页面。我所知道的是它比Snow Leopard更大。
答案 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 - <<< ''
编译一个空程序,并打印该特定系统和编译器特有的所有标准“宏”定义-绝对值得一看。