gpt4 book ai didi

c++ - 关于 main 函数的命令行参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:28:52 25 4
gpt4 key购买 nike

它看起来像 int main(int argc, char *argv[]);。我的问题是:

1 我可以在 argv[] 中添加多少个数组项?

2 每个 char * 的最大大小是多少?

最佳答案

你可以试试:

$ getconf ARG_MAX
2180000

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

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

也就是说,对参数的数量或参数的长度没有单独的限制。只有存储所有参数和环境变量所需的总大小限制。

xargs使用 sysconf(_SC_ARG_MAX); 计算出最大命令行长度,它产生的值与 getconf ARG_MAX 报告的值相同。

在 Linux 上,命令行参数和环境变量被放入新进程的堆栈中。因此,进程/线程的最大堆栈大小是最终上限。 Linux 特定的限制是 hardcoded in the kernel :

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

关于c++ - 关于 main 函数的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7498892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com