如果我想分配一个保证足够大以容纳任何有效的绝对路径+文件名的字符数组(在C中),那么它需要有多大。
在 Win32 上,有 MAX_PATH 定义。 Unix/linux 的等价物是什么?
有一个PATH_MAX
,但是有点问题。来自错误部分真实路径(3) http://man7.org/linux/man-pages/man3/realpath.3.html手册页:
该函数的 POSIX.1-2001 标准版本被破坏了
设计时,无法确定合适的尺寸
输出缓冲器,解析路径。根据 POSIX.1-2001,缓冲区为
尺寸PATH_MAX就足够了,但是PATH_MAX不必是一个定义的
常数,并且可能必须使用以下方法获得路径配置(3) http://man7.org/linux/man-pages/man3/pathconf.3.html。和
询问路径配置(3) http://man7.org/linux/man-pages/man3/pathconf.3.html并没有真正的帮助,因为,一方面
POSIX 警告结果路径配置(3) http://man7.org/linux/man-pages/man3/pathconf.3.html可能很大并且
不适合分配内存,另一方面路径配置(3) http://man7.org/linux/man-pages/man3/pathconf.3.html可能会返回 -1 来表示PATH_MAX不是
有界。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)