【发布时间】:2019-11-23 00:59:03
【问题描述】:
我在这里阅读:http://asm.sourceforge.net/articles/startup.html#st
显然,ELF 二进制文件的堆栈布局是这样的:
argc Number of arguments, which is the size of argv
argv[0] Program name
------------
argv[1] Arguments that get passed to the program
...
argv[argc-1]
------------
NULL
------------
env[0] Environmental variables
...
env[n]
-----------
NULL
这里有两点需要注意,我认为它们有点不一致。
- argv 和 env 都以 NULL 结尾。
- 只有 argv 有一个单独的大小变量。
由于它们是 NULL 终止的,argc 严格来说是没有必要的,即使它可以使一些事情变得更容易一些。就像这样,您不必遍历整个数组即可找到大小。但这些好处也适用于env。
这里的理由是什么?他们为什么选择不同的方法?
【问题讨论】:
标签: unix environment-variables command-line-arguments