在
limits.h
中,以及在POSIX手册的各个地方,都有关于PATH_MAX
和NAME_MAX
的引用。
它们之间有什么关系?
官方文档在哪里可以找到?
如何在C、Python和GNU(shell)环境下在运行时和(相关情况下)编译时获取它们?
os.fpathconf
作为PATH_MAX
的最佳猜测,并且NAME_MAX
是通过struct statvfs
返回的我的实现属性。尽管缺少Python提示,但这是一个很好的答案。 - Matt Joinerpathconf
将为您提供适用于您正在运行的内核/ libc的正确(更新)值,而不是适用于您编译的内核/ libc的不正确(过时)值。显然,重新编译以适应新运行时表面上是更可取的,但在特定情况下并非总是可能或理想的。 - dgcNAME_MAX
的路径组件:pubs.opengroup.org/onlinepubs/9699919799/basedefs/…:“如果任何路径名组件的长度超过 {NAME_MAX},则实现应将其视为错误。” - Petr Skocik