当前位置: 首页 > 面试题库 >

Linux中PATH_MAX在哪里定义?

全心思
2023-03-14
问题内容

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

我希望能够声明:

char *current_path[PATH_MAX];

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

recursive_find6.c:29:20: error: use of undeclared identifier 'PATH_MAX'
char *current_path[PATH_MAX];
                   ^

我试图做一个谷歌搜索,但仍然没有运气。

#include <limits.h> 不能解决问题/错误。

我是否也正确将PATH_MAX的值设置为int?


问题答案:

它在linux/limits.h
#define PATH_MAX 4096 /* # chars in a path name including nul */

#include <linux/limits.h>

char current_path[PATH_MAX];

PATH_MAX如本博客所述存在一些缺陷(感谢paulsm4)



 类似资料:
  • 问题内容: 我想基于BlueZ构建ac文件,但系统中似乎没有bluetooth.h文件。 我确信蓝牙软件狗正在正确运行,并且我已经成功构建了Bluez。 更新资料 就我而言,我在/ user / include / bluetooth文件夹中找到bluetooth.h 问题答案: 您需要安装libbluetooth-dev软件包来编译代码 那应该安装蓝牙头文件。

  • 问题内容: 是将数字转换为字符串的便捷工具。Linux似乎没有,是否有等效的功能或者我必须使用? 问题答案: 编辑:对不起,我应该记得这台机器绝对是非标准的,出于学术目的已插入了各种非标准的实现;-) 由于确实不规范,如一些有用的评论者提到的,最好使用或(更好的,因为它是从安全缓冲区溢出)。我知道它不像它那么简洁或酷,但是至少您可以编写一次,到处运行(tm);-) 这是旧的(编辑过的)答案 您正确

  • 我找不到那个方法。

  • 问题内容: 我试图了解Linux内核中的系统调用接口和实现。我知道标头与实现之间的关系。我想知道的是内核中的首次接收位置,即确定实际上是80h中断的位置。有人可以为此指向我指向LXR链接吗? 问题答案: arch / x86 / kernel / entry_32.S:system_call(INT $ 0x80) arch / x86 / kernel / entry_32.S:ia32_sys

  • 我想在我的项目中正确配置日志记录,并删除了无处不在的警告 通过Maven排除日志记录实现。现在,我最后 引用的网站段落不包含任何要做的提示和存在的问题,比如使用logback/slf4j时抛出的异常,建议做我Afaik做的事情。我的现在是 我需要以便能够编译项目。旧的API请求从何而来?

  • 问题内容: 我刚刚设置了Ubuntu工作站,并想向eclipse.ini添加一些设置。当我搜索文件时,我发现: /etc/eclipse.ini /usr/lib/eclipse.ini 我的问题是: Eclipse实际上是否同时使用两个文件? 如果是这样,它将以什么顺序读取它们? 它如何合并它们? 我找到的两个文件都是系统范围的文件,我的主目录中是否可以放置仅影响实例的目录? 问题答案: 只有一