0
我遇到了execvp和fork问题。当我运行代码时,即使在创建文件时,exec也不起作用。它只是返回一个“错误的地址”错误。另外,printf(“在孩子中”)在我运行时不会出现。我的代码如何在不打印“在孩子中”的情况下进入execvp?错误与fork,execvp在C?
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;
缓冲,冲洗等添加一个换行符。 –
我不明白你在说什么。文件被创建,所以文件名字符串如果格式正确与空。我需要一个能够让我的代码工作的换行符?你在说什么缓冲区? – user2900984
'printf'中的缓冲区。让它在孩子\ n“'中打印'”来查看输出。 –