使用可变数量的参数调用exec?
我有一个程序,可以把其他的过程分开。我的程序的参数包括要分叉的进程的进程名以及任何参数 这意味着,当我调用exec()时,我需要能够处理提供的参数数量 有什么想法吗使用可变数量的参数调用exec?,c,exec,command-line-arguments,variadic-functions,C,Exec,Command Line Arguments,Variadic Functions,我有一个程序,可以把其他的过程分开。我的程序的参数包括要分叉的进程的进程名以及任何参数 这意味着,当我调用exec()时,我需要能够处理提供的参数数量 有什么想法吗 谢谢。函数使用指向参数数组的指针 就像在main中一样,数组中的最后一个元素需要是空指针。或者,execl()接受数量可变的参数,在列表的末尾有一个null指针。不过,您可能应该使用execv(),因为它更干净;C中的varargs只能被认为是一个丑陋的黑客(如果你敢的话,有时可以查看一下(由)指向的文件)/usr/include/
谢谢。函数使用指向参数数组的指针
就像在
main
中一样,数组中的最后一个元素需要是空指针。或者,execl()
接受数量可变的参数,在列表的末尾有一个null
指针。不过,您可能应该使用execv()
,因为它更干净;C中的varargs只能被认为是一个丑陋的黑客(如果你敢的话,有时可以查看一下(由)指向的文件)/usr/include/varargs.h
。哦,太棒了。这使得事情变得简单明了:)。@Blackbinary和main一样,数组的第一个(或第0个)元素通常是程序名(不必与execv的第一个参数相同,execv是要执行的文件名)。varargs的问题不在于有人认为它是一个丑陋的hack,但它不能用于“处理提供的参数数量”,因为varargs函数的参数数量必须在编译时已知。P.S.varargs.h已过时,不属于C标准的一部分。标准h是正确的标题。