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

摘要:
应注意,字符指的是ASCII字符。对于汉字或其他语言,这取决于编码。上述头文件可以包含在程序中,然后直接引用。也可以使用pathconf()函数查询这些值。pathconf()函数的参数可以在本文的表中找到:第2章UNIX标准和UNIX环境高级编程的实现一个简单的示例演示如下:#include#include 使用namespacestd;intmain(){cout<<pathconf<<endl;return0;}

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

 1 #ifndef _LINUX_LIMITS_H
 2 #define _LINUX_LIMITS_H
 3 
 4 #define NR_OPEN            1024
 5 
 6 #define NGROUPS_MAX    65536    /* supplemental group IDs are available */
 7 #define ARG_MAX       131072    /* # bytes of args + environ for exec() */
 8 #define LINK_MAX         127    /* # links a file may have */
 9 #define MAX_CANON        255    /* size of the canonical input queue */
10 #define MAX_INPUT        255    /* size of the type-ahead buffer */
11 #define NAME_MAX         255    /* # 文件名最大字符数 */
12 #define PATH_MAX        4096    /* # 相对路径名最大字符数 */
13 #define PIPE_BUF        4096    /* # bytes in atomic write to a pipe */
14 #define XATTR_NAME_MAX   255    /* # chars in an extended attribute name */
15 #define XATTR_SIZE_MAX 65536    /* size of an extended attribute value (64k) */
16 #define XATTR_LIST_MAX 65536    /* size of extended attribute namelist (64k) */
17 
18 #define RTSIG_MAX      32
19 
20 #endif 

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

上述头文件可以被包含到程序中,然后直接加以引用,这些值也可以使用pathconf( )函数来查询,pathconf( )函数的参数可以参阅该文章中的表格:UNIX环境高级编程 第2章 UNIX标准及实现

一个简单示例demonstration如下:

#include <iostream>
#include <unistd.h>

using namespace std;

int main()
{
    cout << pathconf("/",_PC_NAME_MAX) << endl;return 0;
}

免责声明:文章转载自《Linux路径名和文件名最大长度限制》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux/mac系统的软链接文件与硬链接文件c#创建windows服务(代码方式安装、启动、停止、卸载服务)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux管道符

管道符 把一个命令生成数据直接传给后边的命令。经常把一个命令无法处理完的命令使用管道符进行多次处理。 有些命令有标准输出,有些没有 管道符前面必须有标准输出 管道符后面必须有标准输入 CMD1 | CMD2 | ... 将CMD1的标准输出作为CMD2的标准输入 管道符只能传递标准输出,错误、提示是不能传递的。 利用管道命令发邮件 [root@C8-1...

QT--图灵机器人

QT--图灵机器人 1.登陆图灵机器人官网注册一个图灵机器人 2.获取apikey 3.pro文件添加 QT       += core gui network 4.头文件 #include <QNetworkAccessManager> //三个http必须头文件 #include <QNetworkReply>...

11 个 Linux 上最佳的图形化 Git 客户端

  Git是软件开发和若干其他版本控制任务免费和开源的分布式版本控制系统。它被设计用来以应付一切从小到非常大的项目,基于速度,效率和数据完整性。 Linux用户主要通过命令行管理Git,不过,一些图形用户界面(GUI)Git 客户端可以促进Git在Linux桌面上的高效和可靠使用,并提供大多数命令行操作,如果不是所有命令行的话,完全可以满足你日常的需求。...

Linux date 命令

date命令用于打印或设置系统日期和时间,常见用法如下: [root@localhost ~]# date //查看当前时间 [root@localhost ~]# date +"%Y-%m-%d" //格式化输出 [root@localhost ~]# d...

Linux wc文件统计

原文链接 linux下如何统计一个目录下的文件个数以及代码总行数的命令知道指定后缀名的文件总个数命令:find . -name "*.cpp" | wc -l知道一个目录下代码总行数以及单个文件行数:find . -name "*.h" | xargs wc -llinux统计文件夹中文件数目第一种方法:ls -l|grep “^-”|wc -lls -l...

安装Windows 和 Linux双系统(vmware) Centos7

这里我安装的是Windows + Centos 7,如果是要安装Centos 6,步骤一样 一、安装Windows和Linux双系统需要先安装Windows然后安装Linux   解释:这里解释下为什么要先安装Windows在安装Linux,这点看不懂无所谓的   系统启动首先blos加电自检,然后由blos里边设定的启动顺其进行启动,当发现磁盘中存在MB...