C-execlp函数调用-我可以让argv指向更多参数吗
调用execlp的方法如下所示:C-execlp函数调用-我可以让argv指向更多参数吗,c,exec,C,Exec,调用execlp的方法如下所示: int execlp(const char *file, const char *arg, ... /* (char *) NULL */); 比如说, execlp("/bin/Binary","Binary","0x00","0x01","0x02",(char *)0); 在本例中,由于我的参数“0x00”,“0x01”和“0x02”始终是固定的。我可以创建一个字符数组而不是这样做吗 char *myAr
int execlp(const char *file, const char *arg, ...
/* (char *) NULL */);
比如说,
execlp("/bin/Binary","Binary","0x00","0x01","0x02",(char *)0);
在本例中,由于我的参数“0x00”
,“0x01”
和“0x02”
始终是固定的。我可以创建一个字符数组而不是这样做吗
char *myArgv[]={0x00, 0x01, 0x02};
然后
execlp(“/bin/Binary”,“Binary”,myArgv,(char*)0)代码>
这一个不起作用,因为它将只读取数组中的第一个元素
请告知。我想您正在寻找:
但是mind的评论是:0x00
和“0x00”
绝对不能互换
编辑
正如注释中所指出的,在本例中传递给execvp
的数组必须包含一个NULL
指针作为最后一个成员(与您的示例不同)。是什么让您认为字符串文本“0x00”
和整数常量0x00
可以互换?是的,我知道,这就是我问的原因。thanksIt必须指出,在这种情况下,argv
数组必须包含NULL
终止符。这个问题假设它不会。
int execvp(const char *file, char *const argv[]);