C语言 我可以将 argv 从 main 传递到 execv 吗?



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

execv()的手册页声明...

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

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

我想将argvmain()传递到execv().

我可以确保进入主节点的 argv 被 NULL 指针终止吗?也就是说,我是否可以确保argv[argc] == NULL还是必须分配自己的大小为 argc + 1 的 char* 数组并将NULL放入argc索引中?

如果我能放心,它是否记录在某处?

谢谢~埃里克

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

C99标准草案规定:

如果声明了,则main函数的参数应遵循以下内容 约束:

  • argc的值应为非负数。
  • argv[argc]应为空指针。

相关内容

  • 没有找到相关文章

最新更新