当前位置:  开发笔记 > 运维 > 正文

为什么ARG_MAX没有通过limits.h定义?

如何解决《为什么ARG_MAX没有通过limits.h定义?》经验,为你挑选了1个好方法。

在Fedora Core 7上,我正在编写一些依赖的代码ARG_MAX.但是,即使我#include ,常数仍未定义.我的调查显示它存在,但这应该可以在Win32/Mac/Linux上移植,所以直接包含它不是一个选项.这里发生了什么?



1> Thomas Kamme..:

它不在limits.h中的原因是它不是基于当前体系结构的位宽给出整数类型值范围限制的数量.这是ISO标准赋予limits.h的角色.

您感兴趣的值在实践中不受硬件约束,并且可能因平台而异,也许系统构建可能因系统构建而异.

正确的做法是调用sysconf并询问"ARG_MAX"或"_POSIX_ARG_MAX".无论如何,我认为这是符合POSIX标准的解决方案.

加.在我的文档中,您根据要求的值包含unistd.h或limits.h中的一个或两个.

另一点:exec系列函数的许多实现返回E2BIG或类似值,如果您尝试使用超大环境调用它们.这是exec实际可以返回的定义条件之一.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有