Ejecutar fichero .exe

pepsenma
04 de Mayo del 2009
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/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 forkn", strlen("Error en el forkn"));
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