Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ejecutar fichero .exe

Estas en el tema de Ejecutar fichero .exe en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/05/2009, 08:37
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años
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
  #2 (permalink)  
Antiguo 04/05/2009, 11:39
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejecutar fichero .exe

EDITO:


La instrucción execl anterior esta mal puesta. Creo q deberia ser algo asi como:

execl(path,path, NULL);

donde path:

strcpy(path,"./progs/");
strcat(path,nombre_fichero);

lleva la carpeta contenedora del fichero y el nombre del fichero a abrir.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:43.