SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: Mountain en Lunes 28 de Mayo de 2007, 14:04
-
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.
-
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.