用可变数量的参数调用exec?

时间:2011-03-05 20:53:48

标签: c exec command-line-arguments variadic-functions

我有一个程序可以分离其他进程。我的程序的参数包括要分叉的进程的进程名称以及任何参数。

这意味着,当我调用exec()时,我需要能够处理多个参数。

有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:5)

execv函数接受一个参数数组的指针。

就像在main中一样,数组中的最后一个元素需要是一个空指针。

答案 1 :(得分:1)

或者,execl()采用可变数量的参数,在列表末尾有一个NULL指针。你应该使用execv(),因为它更清洁; C中的varargs只能被认为是一个丑陋的黑客(如果你敢的话,请看一下({1}} /usr/include/varargs.h所指的文件。)。