execvpe argv 到参数匹配需要语法帮助
我得到“从不兼容的指针类型传递'execvp'的参数2”并且
应为“char * const*”,但参数的类型为“const char **”
我想知道正确的语法是什么?谢谢!
int main(int argc, const char* argv[]) {
if(argv[0]!=NULL)
return -1;
int pid = fork();
if(pid==0)
execvp(argv[0],argv+strlen(argv[0]));
else
wait();
return 0;
}
I get "passing argument 2 of ‘execvp’ from incompatible pointer type" and
expected ‘char * const*’ but argument is of type ‘const char **’
I'm wondering what the correct syntax is? Thanks!
int main(int argc, const char* argv[]) {
if(argv[0]!=NULL)
return -1;
int pid = fork();
if(pid==0)
execvp(argv[0],argv+strlen(argv[0]));
else
wait();
return 0;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
exec
函数不接受const char*
。在您的情况下,只需将 argv 更改为 char* ,这就是正确的原型。顺便提一句。
argv + strlen(argv[0])
没有任何意义,你的意思是什么?exec
functions don't acceptconst char*
. In your case, simply changeargv
tochar*
, that's the correct prototype.Btw.
argv + strlen(argv[0])
doesn't make any sense, what did you mean by that?