程序的参数格式有标准吗?

Is there any standard for the argument format of a program?

本文关键字:标准 格式 参数 程序      更新时间:2023-10-16
int main(int argc, char **argv)
{}
  1. argc是否可能等于0?

  2. argv[0]必须是可执行文件的名称吗?

  3. 这些问题有标准吗?

  1. 是的。

  2. 通常是,它也可以是空的,或者一些其他标识字符串,甚至是NULL(参见我的附录)。也可以从程序内部将argv[0]更改为其他内容。

  3. C(和c++)规范

您还错过了一个:argv中的最后一个元素始终是NULL,这意味着argv[argc]将始终是NULL


在C11规范中,它在§5.1.2.2.1程序启动。

在c++ 11规范中它的§3.6.1 Main函数

  1. 。Argv[0]不必存在,但如果存在,它就是一个程序名,因为它可以被获取。
  2. 我猜这是标准的C, Cpp。@JonathanLeffler链接了一个很棒的答案。