1
« en: Lunes 4 de Mayo de 2009, 16:43 »
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