Enviar y leer comandos mediante pipes

Imagen de Orez
0 puntos

Buenas a todos.
soy algo nuevo en esto de programas en linux y quisiera que alguien me ayudara:
lo que quiero hacer es un programa que cree un proceso padre y uno hijo,y que mediante un pipe el proceso hijo le envie un comando(como ls para listar los archivos de una carpeta) al proceso padre,y el proceso padre ejecute dicho comando.
me encontre por ahi este codigo,pero no se que cambiarle para que haga lo que quiero,si alguien pudiese ayudarme se lo agradeceria mucho.
#include sys/types.h
#include stdio.h
#include stdlib.h
#include unistd.h
#include string.h
#define READ 0
#define WRITE 1

main (int argc, char *argv[]) {

int fd[2];
pipe(fd);

if (fork()==0) {
close(fd[READ]);
dup2(fd[WRITE],1);
close(fd[WRITE]);
execlp(argv[1], argv[1], NULL);
perror("connect");
} else {
close(fd[WRITE]);
dup2(fd[READ],0);
close(fd[READ]);
execlp(argv[2], argv[2], NULL);
perror("connect");
}
}