我可以将argv从main传递给execv吗?

eri*_*ich 5 c program-entry-point setuid exec argv

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

execv()各州的手册页......

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

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

我想通过argvmain()execv().

我能确定进入main的argv是由NULL指针终止的吗?也就是说,我可以放心,argv[argc] == NULL还是我分配我自己的char*尺寸阵列argc+ 1,并把NULLargc指数?

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

谢谢,〜埃里克

unw*_*ind 9

是.的argv矢量总是NULL终止.

C99标准草案规定:

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

  • argc应为非负值.
  • argv[argc] 应为空指针.

  • @ ErnestFriedman-Hill来自标准,第5.1.2.2.1节(参见例如http://c0x.coding-guidelines.com/5.1.2.2.1.html) (5认同)
  • 你能引用这个来源吗? (3认同)