linux系统中,对文件名称、目录名称和绝对路径的宽度都做了限制,且限制条件包括且不限于文件系统类型,系统内核等。不考外在诱因外,linux系统默认是将文件名称和目录名称的宽度限制在了255个字节,而绝对路径的宽度限制在了4096个字节;这两个限制值被定义在了系统自带的头文件limits.h中,如图1,路径为

/usr/include/linux/limits.h,不同的linux系统有可能会有差别。

NAME_MAX宏定义表示的文件名或目录名的最大厚度;

头文件路径添加到编译环境里_linux include 头文件 路径_头文件路径错误

PATH_MAX宏定义表示的是绝对路径的最大厚度;

linux include 头文件 路径_头文件路径错误_头文件路径添加到编译环境里

图1

头文件路径错误_头文件路径添加到编译环境里_linux include 头文件 路径

实例之文件名的最大宽度

编撰一个简单的用于测试验证实际创建文件时,限制最大的宽度是多少。如图2linux include 头文件 路径,在shell里使用随机数来作为文件名,之后使用touch创建文件,假如文件名太长linux课程,则会创建失败,反之,则会创建成功。

头文件路径添加到编译环境里_头文件路径错误_linux include 头文件 路径

图2

头文件路径添加到编译环境里_linux include 头文件 路径_头文件路径错误

实例之目录名的最大宽度

同样的,编撰一个简单的shell脚本,之后使用随机数作为目录名以及使用mkdir创建目录linux include 头文件 路径,判定创建结果,如图3红旗linux系统下载,报错时,会显示Filenametoolong信息。

头文件路径添加到编译环境里_头文件路径错误_linux include 头文件 路径

图3

实例之绝对路径的宽度

头文件路径错误_linux include 头文件 路径_头文件路径添加到编译环境里

文件的绝对路径也可以理解为目录下可以创建多少级的子目录,不过这个绝对路径在linux系统中,可以目录名称的宽度有关,目录名称长,则创建的子目录级数就少,反之就多。同样的创建一个shell脚本验证测试下,如图4,分别创建目录名为1字节和2个字节宽度的时侯,得出可以创建多少级的子目录。

在linux系统中,因为目录和子目录的路径是由/分割开的,因而估算绝对路径的厚度时,每位目录须要多一个字节(分割符/占一个字节),因而当创建目录名宽度为1和2的时侯,子目录的级数并不是倍数关系。

头文件路径添加到编译环境里_头文件路径错误_linux include 头文件 路径

图4

本文原创地址://sclmfb.cn/lxtxwjmlmcyj.html编辑:刘遄,审核员:暂无