我尝试写命令解释器在C.我必须创建DWO和三个重定向(例如ls | grep ^d | wc -l
和ls -ps | grep / | pr -3 | more
)
我有一些代码来操作一个重定向
if(k==1)
{
int pfds[2];
pipe(pfds);
child_pid = fork();
if(child_pid==0)
{
close(1);
dup(pfds[1]);
close(pfds[0]);
execlp(arg1[0], *arg1, NULL);
}
else
{
close(0);
dup(pfds[0]);
close(pfds[1]);
execlp(arg2[0], *arg2, NULL);
}
}
我的问题是如何通过让两个和三个重定向pipe
和fork
?
我试图做到这一点只用一个管道,但是这不行。