Pipes y Dup - ¿Qué hace?

Iniciado por piete2, 17 Junio 2018, 05:25 AM

0 Miembros y 1 Visitante están viendo este tema.

piete2

Hola. Alguien podría decirme qué hace este fragmento de código. Gracias!

#include <unistd.h>
main(){
   pipeline("/usr/bin/yes", "/bin/more");
}
int pipeline(char *proc1, char *proc2){
    int fd[2];
    pipe(fd);
    if (fork()!=0){
       close(fd[0]); // No lo necesitamos aqui
       close(1); // Cierra la salida estandar
       dup(fd[1]);
       close(fd[1]); // No lo necesitamos
       execl(proc1, proc1, 0);
   }
   else{
       close(fd[1]); // No lo necesitamos
       close(0); // Cierra la entrada estandar
       dup(fd[0]);
      close(fd[0]); // No lo necesitamos
      execl(proc2, proc2, 0);
   }
}