admin管理员组

文章数量:1613626

最近发现在linux服务器下创建文件报错,找半天找不到问题,文件就是创建不了,最后发现是由于文件名称太长导致文件创建失败,我就说之前看其他人创建文件怎么都用随机字符串来命名,原来还有这种坑啊,果然一些坑只有自己踩过才知道!!!

**

Linux路径名和文件名最大长度限制

**
UNIX标准对路径名和文件名最大长度限制做出了说明,但其上限值在实际应用长过小,Linux在具体实现时提升了该上限,该限制在Linux的 /usr/include/linux/limits.h 中做出了说明,具体如下:

#ifndef _LINUX_LIMITS_H
#define _LINUX_LIMITS_H


#define NR_OPEN            1024


#define NGROUPS_MAX    65536    /* supplemental group IDs are available */
#define ARG_MAX       131072    /* # bytes of args + environ for exec() */
#define LINK_MAX         127    /* # links a file may have */
#define MAX_CANON        255    /* size of the canonical input queue */
#define MAX_INPUT        255    /* size of the type-ahead buffer */
#define NAME_MAX         255    /* # 文件名最大字符数 */
#define PATH_MAX        4096    /* # 相对路径名最大字符数 */
#define PIPE_BUF        4096    /* # bytes in atomic write to a pipe */
#define XATTR_NAME_MAX   255    /* # chars in an extended attribute name */
#define XATTR_SIZE_MAX 65536    /* size of an extended attribute value (64k) */
#define XATTR_LIST_MAX 65536    /* size of extended attribute namelist (64k) */


#define RTSIG_MAX      32


#endif

上述文件内容的第11行和第12行分别说明了文件名和相对路径名的最大长度。需要说明的是,字符指的是ASCII字符,如果是汉字或者其他语言,则需要视编码而定。

Windows路径名和文件名最大长度限制

Windows 通常限定文件名最多包含 260 个字符(一个汉字占用两个字符哦)。但实际的文件名必须少于这一数值,因为完整路径(如 C:\Program Files\filename.txt)都包含在此字符数值中。

文章地址:https://www.ycblog.top/article?articleId=133&pageNum=1

本文标签: 文件名路径长度LinuxWindows