5

execv()函数需要一个终止字符串的数组,NULL但不接受参数的数量。它使用标记值(NULL指针)来确定数组何时结束。

状态的手册页execv()...

按照惯例,第一个参数应该指向与正在执行的文件关联的文件名。指针数组必须以 NULL 指针终止。

......所以我的问题是......

我想传递argvfrommain()execv()

我可以确定进入 main 的 argv 会被 NULL 指针终止吗?也就是说,我可以放心argv[argc] == NULL还是必须分配我自己的 size + 1char*数组并放入索引?argcNULLargc

如果我可以放心,它是否记录在某个地方?

谢谢,~埃里克

4

1 回答 1

9

是的。argv向量总是NULL终止的。

C99 标准草案规定:

如果声明了它们,则main函数的参数应遵守以下约束:

  • 的值argc应为非负数。
  • argv[argc]应为空指针。
于 2012-05-16T13:34:35.543 回答