Skip to main content

Todo sobre el comando de Linux / Unix: execvp

Linux Exec System Call (Abril 2025)

Linux Exec System Call (Abril 2025)
Anonim

losexec familia de funciones reemplaza la imagen del proceso actual con una nueva imagen del proceso. Las funciones descritas aquí son frontales para la función.execve(2).

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

los const char * arg y subsiguientes elipses en elexecl, execlpyexecle Las funciones pueden ser consideradas 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 de archivo asociado con el archivo que se está ejecutando. La lista de argumentos debe ser terminado por unNULO puntero.

losexecv yexecvp las funciones 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 de archivo asociado con el archivo que se está ejecutando. La matriz de punteros. debe ser terminado por unNULO puntero.

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

Algunas de estas funciones tienen una semántica especial.

Las funcionesexeclp yexecvp duplicará las acciones del shell en la búsqueda de un archivo ejecutable si el nombre del archivo especificado no contiene un carácter de barra (/). La ruta de búsqueda es la ruta especificada en el entorno por elCAMINO variable. Si esta variable no se especifica, se usa la ruta predeterminada ``: / bin: / usr / bin ''. Además, ciertos errores son tratados especialmente.

Si se deniega el permiso para un archivo (el intentoexecve devueltoEACCES), estas funciones continuarán buscando 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 ajustado aEACCES.

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

Valor de retorno

Si alguno de losexec Funciones devuelve, se habrá producido un error. El valor de retorno es -1, y la variable global. errno se establecerá para indicar el error.

Importante: Utilizar el hombre comando % hombre ) para ver cómo se usa un comando en su computadora en particular.

Nombre

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

Sinopsis

#incluir

extern char ** environ;

int execl (const char * camino , const char * arg , …); int execlp (const char * expediente , const char * arg , …); int execle (const char * camino , const char * arg , …, char * const envidia ); int execv (const char * camino , char * const argv ); int execvp (const char * expediente , char * const argv );