alguien sabe que librebria y que tengo q escribir para hacer una llamada a otro exe.
Yo habia puesto de libreria e puesto la de (process.h)
execlp (c:\...","");
xo no ace lo q le pido,
Alguien que ya lo haya hecho, plisss
Salu2
alguien sabe que librebria y que tengo q escribir para hacer una llamada a otro exe.
Yo habia puesto de libreria e puesto la de (process.h)
execlp (c:\...","");
xo no ace lo q le pido,
Alguien que ya lo haya hecho, plisss
Salu2
No se como va en Borland C++, pero supongo q la llamada será igual q en Unix. La sintaxis es:
int execlp(char *fich, char *arg0, char *arg1, ..., char *argn, char *null)
Es decir, q si quieres ejecutar el fichero programa.exe pasandole como argumento -h debes poner:
execlp("programa.exe" , "programa.exe" , "-h", NULL);
Espero q funcione igual en MsDos. Salu2.
la pega es que int se suele utilizar para declarar variables de tipo entero... xo vamos lo probare, despues de todo que no quede que no lo probe.
Sallu2
Emmm??? Creo q no has entendido... ese int significa que la función te devolverá un número indicando como fue la operación. Creo q concretamente devuelve el código de retorno del programa, que es 0 si todo va bien, y >0 si se produjo algún error. Así q bastará con hacer algo así:
int error;
error = execlp("programa.exe", "programa.exe", "-h", NULL);
if (error != 0) //se ha producido un error
{
//aquí el código para tratar el problema
}
execlp
exec... functions (PROCESS.H)
Enable your program to load and run other files (child processes)
Use these execl... functions when you know how many separate arguments
you'll have:
Declaration:
int execl (char *path, char *arg0, ..., NULL);
int execle (char *path, char *arg0, ..., NULL, char **env);
int execlp (char *path, char *arg0, ...);
int execlpe(char *path, char *arg0, ..., NULL, char **env);
Use these execv... functions when you don't know in advance how many
separate arguments you will have:
Declaration:
int execv (char *path, char *argv[]);
int execve (char *path, char *argv[], char **env);
int execvp (char *path, char *argv[]);
int execvpe(char *path, char *argv[], char **env);
Remarks:
When an exec... call succeeds, the child process overlays the parent
process. There must be sufficient memory available for loading and executing
the child process.
The l, v, e, and p suffixes added to "exec" specify certain capabilities of
the exec... function.
Argument ³ What It Is/Does
path ³ File name of the called child process
argN ³ Argument pointer(s) passed as separate arguments
argv[N] ³ Argument pointer(s) passed as an array of pointers
env ³ Array of character pointers.
The exec... functions search for path using the
standard DOS search algorithm.
When an exec... function call is made, any open files remain open in the
child process.
Return Value:
On success, the functions do not return.
On error, the functions return -1 and set
errno to one of the following:
E2BIG Arg list too long
EACCES Permission denied
EMFILE Too many open files
ENOENT Path or file name not found
ENOEXEC Exec format error
ENOMEM Not enough core
no si lo primero que hice fue preguntarle al profesor, el caso es que como es algo que aun no se ha dado, el hombre lo miro muy por encima y me dijo q mirara la ayuda y tal, xo claro yo lo e probao casi todo.
jeje
solo era a ver si alguien lo ha echo y me decia que tenia q decir exactamente
Lo unico q desde el punto d vista d programacion estructurada llamar asi a un subproceso qda un pelin chapucero porq rompes el flujo del programa, pero algunas veces no hay mas remedio.
Respecto a tu profe posss q quieres q t diga... es un pelin torpe no? todavia si m dices la ayuda del vb q t deja como estabas pero la d borland q t cuenta con pelos y señales (d hecho cuando tengo q usar modo grafico copio la declaracion d modo q viene n la ayuda y ajusto la ruta del bgi xD)
Pues la verdad es q eso de llamar a programas externos es bastante chapuza si. Soy de la misma opinión. Ni siquiera le veía demasiado sentido hacer esto en Unix teniendo en cuenta que podemos tener varios procesos, como para hacerlo en MsDos... xo weno, si lo necesita... Salu2.