linux路径长度
When programming in C on Linux, it is common to allocate a buffer for storing the full path of a file.
在Linux上用C 编程时,通常分配一个缓冲区来存储文件的完整路径。
How to get a safe maximum size for allocating buffers for file paths?
如何获得安全的最大大小来为文件路径分配缓冲区?
The header <linux/limits.h>
includes macros for the path and file name length limits.
标头< linux /limits.h>
包含用于路径和文件名长度限制的宏。
On my system (Fedora 21), it is located in
在我的系统(Fedora 21)上,它位于
/usr/include/linux/limits.h
For your reference, the content is:
供参考,内容为:
#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 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
#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
These 2 macros specify the maximum file name and path name lengths:
这两个宏指定最大文件名和路径名长度:
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
As it is Linux specific, your code using this header will not be portable to Unix or Windows OSes.
由于特定于Linux,因此使用此标头的代码无法移植到Unix或Windows OS。
翻译自: https://www.systutorials.com/maximum-allowed-file-path-length-for-c-programming-on-linux/
linux路径长度