我知道关于 xargs --limits
和 getconf ARG_MAX
的内容。是否值得考虑有人达到这个限制的想法,如果是这样的话,程序会有什么负面影响吗?例如,假设你执行以下操作:
std::vector<std::string> v(argv, argv + argc);
最糟糕的情况是会抛出 std::bad_alloc
异常吗?
我知道关于 xargs --limits
和 getconf ARG_MAX
的内容。是否值得考虑有人达到这个限制的想法,如果是这样的话,程序会有什么负面影响吗?例如,假设你执行以下操作:
std::vector<std::string> v(argv, argv + argc);
最糟糕的情况是会抛出 std::bad_alloc
异常吗?
exec*()
操作会失败,您的程序将无法运行。因此,您的程序只能被调用带有适合可用空间的参数和环境变量列表。exec*()
其他程序,因为参数加上环境变量太大,会出现错误E2BIG。
main()
函数参数数量的限制和在exec()
函数中检查E2BIG错误条件。 - Jonathan Leffler