Aprenda el comando de Linux – execv

execl, execlp, execle, execv, execvp - ejecuta un archivo Sinopsis #include extern char ** environmental; int execl (const char * ruta , const char * arg , ...); int execlp (const char * archivo , const char * arg , ...); int execle (const char * ruta , const char * arg , ..., char * const envp []); int execv (const char * ruta , char * const argv []); int execvp (const char * archivo , char * const argv []);

execl, execlp, execle, execv, execvp – ejecuta un archivo

Sinopsis

#include

extern char ** environmental;

int execl (const char * ruta , const char * arg , …);
int execlp (const char * archivo , const char * arg , …);
int execle (const char * ruta , const char * arg , …, char * const envp []);
int execv (const char * ruta , char * const argv []);
int execvp (const char * archivo , char * const argv []);

Descripción de funciones ejecutivas

La familia de funciones exec reemplaza la imagen de proceso actual con una nueva imagen de proceso. Las funciones descritas en esta página del manual son front-end para la función execve (2). (Consulte la página del manual de execve para obtener información detallada sobre la sustitución del proceso actual).

El argumento inicial para estas funciones es la ruta de acceso de un archivo que se ejecutará.

El const char * arg y las elipses subsiguientes en las funciones execl , execlp y execle pueden considerarse como arg0 , arg1 , …, argn . Juntos describen una lista de uno o más punteros a cadenas terminadas en nulo que representan la lista de argumentos disponible para el programa ejecutado. El primer argumento, por convención, debe apuntar al nombre del archivo asociado con el archivo que se está ejecutando. La lista de argumentos debe estar terminada por un puntero NULL .

Las funciones execv y execvp proporcionan una serie de punteros a cadenas terminadas en nulo que representan la lista de argumentos disponible para el nuevo programa. El primer argumento, por convención, debe apuntar al nombre del archivo asociado con el archivo que se está ejecutando. La matriz de punteros debe estar terminada por un puntero NULL .

La función execle también especifica el entorno del proceso ejecutado siguiendo el puntero NULL que termina la lista de argumentos en la lista de parámetros o el puntero a la matriz argv con un adicional parámetro. Este parámetro adicional es una matriz de punteros a cadenas terminadas en nulo y debe estar terminado por un puntero NULL . Las otras funciones toman el entorno para la nueva imagen de proceso de la variable externa environment en el proceso actual.

Algunas de estas funciones tienen una semántica especial.

Las funciones execlp y execvp duplicarán las acciones del shell en la búsqueda de un archivo ejecutable si el nombre de archivo especificado no contiene un carácter de barra diagonal (/). La ruta de búsqueda es la ruta especificada en el entorno por la variable PATH . Si no se especifica esta variable, se usa la ruta predeterminada «:/bin:/usr/bin ». Además, ciertos errores son tratados especialmente.

Si se deniega el permiso para un archivo (el intento de ejecución devolvió EACCES ), estas funciones continuarán buscando en el resto de la ruta de búsqueda. Sin embargo, si no se encuentra ningún otro archivo, volverán con la variable global errno establecida en EACCES .

Si no se reconoce el encabezado de un archivo (el intento de execve devolvió ENOEXEC ), estas funciones ejecutarán el shell con la ruta del archivo como primer argumento. (Si este intento falla, no se realizan más búsquedas).

Valor de retorno de funciones ejecutivas

Si alguna de las funciones exec regresa, se habrá producido un error. El valor de retorno es -1, y la variable global errno se establecerá para indicar el error.

Rate article
labsfabs.com
Add a comment