最近,一个CS实验室的学生我TA正在喋喋不休地说,argv [0]不是第一个参数而是你运行的命令是多么令人困惑(有点像当他们咆哮说“愚蠢”是什么时候他们必须在xthon中写x == 2或x == 4而不是x == 2或4),并问我为什么要这样做。好吧,老实说,我不明白为什么。我没有看到任何实际目的知道用于执行程序的命令,也没有传递空列表/向量的问题,谷歌也没有帮助解决这个问题。
所以我的问题是为什么执行的命令本身包含在命令行参数的列表/向量中?
答案 0 :(得分:2)
了解命令行会影响程序的行为方式。作为一个着名的例子,bash
的行为类似于经典的sh
,如果你这样称呼它(例如使用软链接)。 Busybox也浮现在脑海中(它真的大量使用它)。