Muy buenas,
 
Hace dias que me estoy comiendo el coco con esto. Necesitaria poder ejecutar un programa en C, y redireccionar su salida a traves de sockets. 
 
Mi forma de hacerlo es via pipe/fork/dup2/execl. No se si es la mejor manera pero es la única que se me ha ocurrido. 
 
Les muestro mi codigo y a ver si saben donde puedo fallar. El problema es que siempre sale el error de "[Error en el paso de los fitcheros]".
 
 
 
if (pipe(fd) == -1){
	perror("Creating pipe");
        exit(1);
}
 
pid=fork();
 
switch(pid){
	case -1:
		write(1,"Error en el fork\n", strlen("Error en el fork\n"));
	break;
 
	case 0:
		close(fd[0]);
		dup2(fd[1], 1);
		strcpy(path,"./progs/");
		strcat(path,nom);
		execl("./progs/","./progs/", NULL);
		write(1,"[Error en el paso de los fitcheros]\n",strlen("[Error en el paso de los fitcheros]\n");
		exit(0);		
	break;
 
	default:
 
        	close(fd[1]);
		i=0;
 
        //Aqui vendria toda la lectura de la pipe y el envio a traves de sockets
 
      }
 
 
Muchas gracias por vuestro tiempo 
  
 
