2010-09-16 94 views
1

使用C,我们如何找到文件系统允许的char *的最大大小?最大字符大小*

+2

你是什么意思“文件系统允许的?” – 2010-09-16 00:25:29

+0

你的意思是文件名的最大长度? – Potatoswatter 2010-09-16 00:25:50

+0

听起来好像你在问如何找到允许某种类型的文件系统支持的最长字符串。你的意思是什么样的字符串?您是否在寻找一种方法来查找最长的支持文件名? – 2010-09-16 01:19:56

回答

1

这里我的假设是,您要求“文件系统允许的文件名的最大允许长度是多少?”

这取决于操作系统以及文件系统是如何实现的,但大多数系统都定义了可引用的宏。

在Linux中,limits.h,该值可以由宏PATH_MAX,4096是参考(当前为内核2.6.35的)

在Windows中,WinDef.h,该值可以是由宏MAX_PATH,260参考(当前的Windows 7)。这不包括使用UNC路径(请参阅下面的注释)。

+1

在Windows中,故事要复杂得多,因为UNC路径具有单独的(并且更大的)最大长度。路径指向的类型文件系统也是如此。请参阅http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx了解一些血淋淋的细节。 – RBerteig 2010-09-16 00:55:22

+0

+1好点。提到更新的解决方案。 – linuxuser27 2010-09-16 01:04:44

+0

我认为只使用C库的完全可移植的解决方案将不得不依赖于FILENAME_MAX(来自'stdio.h')。 – 2010-09-16 01:48:31