关于绝对路径名的其他限制是什么?
似乎唯一的限制是它必须以“/”开头,并且下面的 ascii 字符序列必须由每个用“/”分隔的 ascii 字符段组成。
注意:我试图找出将路径名映射到文件的函数的名称空间。
编辑:事实证明,对于我的家庭作业,我对限制的推理是正确的。
关于绝对路径名的其他限制是什么?
似乎唯一的限制是它必须以“/”开头,并且下面的 ascii 字符序列必须由每个用“/”分隔的 ascii 字符段组成。
注意:我试图找出将路径名映射到文件的函数的名称空间。
编辑:事实证明,对于我的家庭作业,我对限制的推理是正确的。
路径名的长度不能超过 PATH_MAX - 请参阅 /usr/include/limits.h 或 sysconf(3)。
文件的长度不能超过取决于文件系统的 NAME_MAX - 请参阅 fpathconf(3) 或pathconf。
绝对路径确实以“/”开头
简短的回答是它取决于使用的文件系统,但您可以从内核强制使用特定的字符集。
长版大部分没有太多限制,有些甚至可以让你在文件名中使用'/'或'\0'作为有效字符,但是在软件中处理它很疯狂,所以没有人真的使用该“功能”。例如,如果您映射一个 FAT 文件系统,您将被限制在合法的范围内(仅限 ascii)。我使用 ext4 和 reiserfs4,它们允许除 '/' 和 '\0' 之外的所有内容。我使用 utf-8 字符集,因此我可以使用名称中包含所有全局字符的文件名(我有一些带有日文或俄文名称的文件 - 主要是来自这些国家的音乐)。