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