【发布时间】:2015-04-17 09:29:49
【问题描述】:
我想知道 C/C++ 主函数中参数列表的最大大小是多少?它取决于操作系统吗?如果我将大量的参数传递给主函数会发生什么,主函数的行为将是不确定的?
谢谢,
【问题讨论】:
-
我的意思是我们可以传递多少个参数,如果我传递的参数数量大于最大尺寸,这是否是一个安全问题?
-
查看SO post 以获得关于参数大小的理论讨论。什么上下文需要这些知识?
-
@channgo2203 我认为 Linux 将参数向量的大小限制为 128 kB。通常,如果您尝试使用更多参数启动程序,则对
exec的调用会失败。 -
感谢 FUZxxl,但是,在 main(int argc, char* argv) 中,如果我将非常大的数字和字符串列表传递给 argv,使它们小于 128KB,会发生什么,可能exec失败了,我去查一下。
-
@channgo2203 为什么在这种情况下会发生什么奇怪的事情?指针数组
argv计入 128 kB;你不会有任何问题。