关于主要功能的命令行参数 [英] About command line arguments of main function

查看:150
本文介绍了关于主要功能的命令行参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

它看起来像 INT主(INT ARGC,CHAR *的argv []); 。我的问题是:

It will look like int main(int argc, char *argv[]);. My questions are:

1多少阵列项目可以加我在的argv []

1 How many array items can I add in argv[]?

2这是每一个的char *的最大尺寸

推荐答案

您可以试试:

$ getconf ARG_MAX
2180000

http://pubs.opengroup.org/onlinepubs/007904975/ basedefs / limits.h.html

ARG_MAX是争论的最大长度为exec函数包含环境数据。

ARG_MAX is maximum length of argument to the exec functions including environment data.

这就是,对参数或参数的长度数量没有限制个人。只有在总规模上限来存储所有的参数和环境变量。

That is, there is no individual limit on the number of arguments or argument's length. Only the limit on total size required to store all the arguments and environment variables.

的xargs 数字出最大指令使用的sysconf(_SC_ARG_MAX)线路长度; 这将产生所报告的在getconf ARG_MAX 相同的值

xargs figures out maximum command line length using sysconf(_SC_ARG_MAX); which yields the same value as reported by getconf ARG_MAX.

在Linux命令行参数和环境变量放入新进程的堆栈。因此,进程/线程最大堆栈大小为最终的上限。 Linux特有的限制是在内核硬codeD

On Linux command line arguments and environment variables are put into new process' stack. So, the process/thread maximum stack size is the ultimate upper bound. Linux-specific limits are hardcoded in the kernel:

#define MAX_ARG_STRLEN (PAGE_SIZE * 32)
#define MAX_ARG_STRINGS 0x7FFFFFFF

这篇关于关于主要功能的命令行参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆