【发布时间】:2011-07-09 13:37:24
【问题描述】:
我有一个分叉其他进程的程序。我的程序的参数包括要分叉的进程的进程名称以及任何参数。
这意味着,当我调用 exec() 时,无论提供多少参数,我都需要能够处理。
有什么想法吗?
谢谢。
【问题讨论】:
标签: c exec command-line-arguments variadic-functions
我有一个分叉其他进程的程序。我的程序的参数包括要分叉的进程的进程名称以及任何参数。
这意味着,当我调用 exec() 时,无论提供多少参数,我都需要能够处理。
有什么想法吗?
谢谢。
【问题讨论】:
标签: c exec command-line-arguments variadic-functions
execv 函数接受一个指向参数数组的指针。
就像在main 中一样,数组中的最后一个元素需要是一个空指针。
【讨论】:
或者,execl() 采用可变数量的参数,NULL 指针位于列表末尾。但是,您可能应该使用execv(),因为它更干净; C 中的 varargs 只能被认为是一个丑陋的 hack(如果你敢的话,有时看看(指向的文件)/usr/include/varargs.h!)。
【讨论】: