• Viernes 8 de Noviembre de 2024, 20:40

Autor Tema:  Ejecucion De Programas Con Pipes  (Leído 1209 veces)

Mountain

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Ejecucion De Programas Con Pipes
« en: Lunes 28 de Mayo de 2007, 14:04 »
0
Tengo un pequeño dilema con las redirecciones para poder programar un comando usando pipes.
si tengo la orden:

who | wc -l >fichero.txt

Tengo una parte del codigo


int pfd[2];
switch(id=fork()) {
      case -1:   error("fork");
      case 0:   /* 1. hijo who*/
         printf("Creado el proceso who\n");

         if(close(1)==-1) error("close");
         if(dup(pfd[1])!=1) error("dup");
         if((close(pfd[0])==-1) ||
            (close(pfd[1])==-1) )  error("close");
         execlp("who","who",NULL);
         error("execlp");
   }
   printf("Lanzado el proceso who(%d)\n",id);

   switch(id=fork()) {
      case -1:   error("fork");
      case 0:   /* 2. hijo wc  */
         printf("Creado el proceso wc\n");
         if(close(0)==-1) error("close");
         if(dup(pfd[0])!=0) error("dup");
         if((close(pfd[0])==-1)||
            (close(pfd[1])==-1) )  error("close");
         execlp("wc","wc","-l",NULL);
         error("execlp");
   }

Ahora he programado solo : who | wc -l y me falta la redireccion al fichero
¿Como lo haria? alguien tiene alguna idea?

Saludos.

kaidok

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: Ejecucion De Programas Con Pipes
« Respuesta #1 en: Martes 29 de Mayo de 2007, 16:26 »
0
Hmmmm  :rolleyes: . Unix tiene elementos para redefinir la salida o entrada estándar, es decir que sean ellos la entrada o salida estándar si necesidad de redirecciones, creo que era con un comando exec o algo así...

Siento no poder ser más preciso, pero espero que te sirva.