关于主要功能的命令行参数 [英] About command line arguments of main function
问题描述
它看起来像 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屋!