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.