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

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

有没有一种好的方法来绕过运行EXE文件的限制?

在systemd中使用cpuQuota

linux命令xargs:它传递的参数的最大大小?

每个IP地址限制数据包每分钟

在受控环境下运行应用程序的问题(Win32)

不在limits.h中的原因是它不是在当前体系结构上根据位宽给出整数类型值范围的限制的数量。 这是由ISO标准分配给limits.h的角色。

您感兴趣的价值在实践中并不是硬件绑定的,并且可以因平台而异,也可能从系统构建到系统构建。

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

加。 对于我的文档,根据您请求的值包含unistd.h或limits.h中的一个或两个。

还有一点:exec函数家族的许多实现都会返回E2BIG或类似的值,如果你尝试在超大的环境中调用它们的话。 这是exec可以实际返回的定义条件之一。

ARG_MAX在/usr/include/linux/limits.h中定义。 我的Linux内核版本是3.2.0-38。

相关文章

本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不...
本文小编为大家详细介绍“怎么将工程托管到gitee”,内容详细...
这篇文章主要介绍了gitee中图片大小如何调整的相关知识,内容...