
04/05/2009, 08:37
|
| | Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años, 9 meses Puntos: 0 | |
Ejecutar fichero .exe 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 |