viernes, 5 de marzo de 2010

execve

execve - ejecución de un archivo.

int execve(const char *path, char *const argv[], char *const envp[]);

descripción: la llamada al sistema execve sustituye la imagen del proceso que la llamó por una nueva imagen ejecutable dada, es decir, el proceso que llamó a execve se transforma en un nuevo proceso.

Parametros:
path el contenido de path debe ser la ruta del archivo ejecutable que sustituirá a la imagen del proceso que llamo a execve.

argv es una lista de argumentos que se le enviaran al nuevo proceso.

envp es una lista de variables de entorno que se enviaran al nuevo proceso.

retorno: execve regresa -1 en caso de error y NO regresa valor alguno en caso de éxito, ya que el programa "planchado" toma el control.

ejemplo: el siguiente programa utiliza execve para ejecutar el archivo /usr/bin/clear

#include
int main (){

int salida;
char *cmd[] = { "clear", (char *)0 };
char *env[] = { "TERM=xterm", (char *)0 };
salida = execve ("/usr/bin/clear", cmd, env);
return 0;
}


nota: Si no se envia la variable de entorno env el comando clear no puede ejecutarse ya que la variable $TERM le indica a clear como borrar la terminal en donde se ejecuta.

No hay comentarios:

Publicar un comentario