Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用可变数量的参数调用exec?_C_Exec_Command Line Arguments_Variadic Functions - Fatal编程技术网

使用可变数量的参数调用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/

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

这意味着,当我调用exec()时,我需要能够处理提供的参数数量

有什么想法吗


谢谢。

函数使用指向参数数组的指针


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

或者,
execl()
接受数量可变的参数,在列表的末尾有一个
null
指针。不过,您可能应该使用
execv()
,因为它更干净;C中的varargs只能被认为是一个丑陋的黑客(如果你敢的话,有时可以查看一下(由)指向的文件)
/usr/include/varargs.h

哦,太棒了。这使得事情变得简单明了:)。@Blackbinary和main一样,数组的第一个(或第0个)元素通常是程序名(不必与execv的第一个参数相同,execv是要执行的文件名)。varargs的问题不在于有人认为它是一个丑陋的hack,但它不能用于“处理提供的参数数量”,因为varargs函数的参数数量必须在编译时已知。P.S.varargs.h已过时,不属于C标准的一部分。标准h是正确的标题。