Там надо продумать что-то закрыть, а что-то оставить. IN одного
будет OUT другого. попробовать этот пример
pipe(pipero); // pipe 1
pipe(pipewo); // pipe 2
// parent: read from pipero[0], write to pipewo[1]
pipefd[0] = pipero[0];
pipefd[1] = pipewo[1];
if((pid=fork())==0){
// child: read from pipewo[0], write to pipero[1]
dup2(pipewo[0],0);
dup2(pipero[1],1);
execlp("what-u-want","what-u-want", NULL);
}
else{
...
}
https://www.opennet.ru/base/patch/dup2.txt.html