我想我应该将三个案件分开。如果它是一个单独的命令,没有输入或输出文件。一个有输入文件,另一个有输出文件?
答案 0 :(得分:0)
实际上你应该把它分开4个案例!你忘记了父亲的过程!父亲必须等待儿子进程(即你通过的命令)实际上已经完成以再次控制。
我的建议是为父亲添加一个waitpid:
case 1: // ;
p=fork(); //bacause the father is still running while the son is processing
if(p==0){// you should add the father case
return 0;
}else{ //father
waitpid(//the parameter to add)
output=0;
input=0;
execute=1;
}
break;