[英]Error with fork, execvp in C?
我在使用execvp和fork时遇到问题。 当我运行代码时,即使文件已创建,exec也无法工作。 它仅返回“错误地址”错误。 另外,当我运行printf(“ in child”)时,它不会出现。 我的代码如何在不打印“ in the child”的情况下进入execvp?
pid = fork();
switch(pid) {
case -1:
fprintf(stderr,"ERROR WITH FORK\n");
exit(1);
break;
case 0:
printf("in the child");
fd = open(filename,O_CREAT | O_APPEND,0777);
if(dup2(fd,1) < 0)
{
fprintf(stderr,"dup error: %s",strerror(errno));
}
if(execvp(command,args) == -1) //is null terminated
{
fprintf(stderr,"exec error %s\n",strerror(errno));
}
break;
default:
wait(NULL);
break;
指针数组( execvp()
的第二个参数)必须以NULL
指针终止。 在args
末尾附加0
或NULL
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.