execv()
函数需要一个NULL
终止字符串的数组,但不采用参数的数量。 它使用哨兵值(NULL
指针)来确定数组何时结束。
execv()
的手册页声明...
按照惯例,第一个参数应指向文件名 与正在执行的文件相关联。 指针数组必须 由 NULL 指针终止。
。所以我的问题是....
我想将argv
从main()
传递到execv()
.
我可以确保进入主节点的 argv 被 NULL 指针终止吗?也就是说,我是否可以确保argv[argc] == NULL
还是必须分配自己的大小为 argc
+ 1 的 char*
数组并将NULL
放入argc
索引中?
如果我能放心,它是否记录在某处?
谢谢~埃里克
是的。argv
向量始终NULL
终止。
C99标准草案规定:
如果声明了,则
main
函数的参数应遵循以下内容 约束:
argc
的值应为非负数。argv[argc]
应为空指针。