首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Linux中PATH_MAX是在哪里定义的?

在Linux中PATH_MAX是在哪里定义的?
EN

Stack Overflow用户
提问于 2012-02-26 07:54:25
回答 4查看 199.8K关注 0票数 131

我应该用#include调用哪个头文件才能将PATH_MAX用作调整字符串大小的整数?

我希望能够声明:

代码语言:javascript
复制
char *current_path[PATH_MAX];

但当我这样做时,我的编译器(Linux上的Clang/LLVM)会发出以下错误:

代码语言:javascript
复制
recursive_find6.c:29:20: error: use of undeclared identifier 'PATH_MAX'
char *current_path[PATH_MAX];
                   ^

我试着在谷歌上搜索,但还是没有结果。

#include <limits.h>未修复问题/错误。

PATH_MAX的值是不是也是整型的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-26 08:05:28

它在linux/limits.h中。

#define PATH_MAX 4096 /* # chars in a path name including nul */

代码语言:javascript
复制
#include <linux/limits.h>

char current_path[PATH_MAX];

正如在this blog中提到的,PATH_MAX有一些缺陷(感谢paulsm4)

票数 158
EN

Stack Overflow用户

发布于 2012-11-20 21:51:41

请注意,仍然不清楚PATH_MAX定义的最大长度是否带有尾随nul字节。它可能是不同操作系统上的一种或另一种。如果您不能或不想在编译过程中检查是哪种情况,则强制对PATH_MAX - 1进行人为限制会更安全。安全总比后悔好。(显然,您仍然需要保留至少PATH_MAX字节的内存来缓冲字符串。)

票数 17
EN

Stack Overflow用户

发布于 2019-05-31 04:36:36

可移植的方法是:

代码语言:javascript
复制
#define _POSIX_C_SOURCE 1
#include <limits.h>

规格:https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9449241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档