nng*_*ngm 3 c c++ abbreviation argv
我想知道缩写envp代表什么,例如这里:
int main(int argc, char **argv, char **envp);
Run Code Online (Sandbox Code Playgroud)
我也想知道vinargv最初代表什么。是v为了“价值”吗?或者也许是“矢量”?
意思是:
argv代表ARG ument v埃克特argc对于ARG ument Ç 'mount和envp对于ENV ironment p ointer。我们可以讨论命名约定的好坏,但这是一种历史用法,可以追溯到 C 语言的开始:BWKernighan和D.Ritchie在 1978 年的第一版The C Programming language中已经使用argc和argvfor 。main()
的envp 溶液中加入从UNIX发展以后,是使用一种替代environ的指针。我在 1986 年的一本书中找到了对它的引用,但它肯定更旧。它不需要计数,因为它是空终止的。请注意,它不可移植,因此getenv()应首选使用。
在 Kernighan 和 Ritchie 的《C 编程语言》,1978 年,argv第 221 页的索引中显示为:
\n\n\n\n
argv参数向量\xe2\x80\x83110
第 110-114 页上的文本除了其语义之外,没有进一步说明argc或 的派生。没有出现在索引中。argvenvp
在 1988 年第二版中,第 114 页相应部分的文字如下:
\n\n\n\n\n\xe2\x80\xa6 两个参数。第一个(通常称为
\nargc参数计数)是调用程序时使用的命令行参数的数量;第二个(argv,对于参数向量)是\xe2\x80\xa6
再次在第二版中,envp没有出现在索引中。
Unix 规范 IEEE Std 1003.1-2008, 2016, The Open Group Base Specifications Issue 7environ在关于、execl和相关例程的部分中表示:
\n\n\n一些实现为 main() 提供了第三个参数,称为 envp。这被定义为指向环境的指针。
\n
这与环境指针的envp含义是一致的。