Provided by:
manpages-es_1.55-8_all 
NOMBRE
execl, execlp, execle, execv, execvp - ejecutan un fichero
SINOPSIS
#include <unistd.h>
extern char **environ;
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg , ..., char * const
envp[]);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);
DESCRIPCIÓN
La familia de funciones exec reemplaza la imagen del proceso en curso
con una nueva. Las funciones descritas en esta página del Manual son
interfaces para la primitiva execve(2). (Consulte la página del Manual
de execve para información detallada acerca del reemplazo del proceso
en curso.)
El primer argumento de estas funciones es el camino de un fichero que
va a ser ejecutado.
El const char *arg y puntos suspensivos siguientes en las funciones
execl, execlp, y execle pueden ser contemplados como arg0, arg1, ...,
argn. Todos juntos, describen una lista de uno o más punteros a
cadenas de caracteres terminadas en cero, que representan la lista de
argumentos disponible para el programa ejecutado. El primer argumento,
por convenio, debe apuntar al nombre de fichero asociado con el fichero
que se esté ejecutando. La lista de argumentos debe ser terminada por
un puntero NULL.
Las funciones execv y execvp proporcionan un vector de punteros a
cadenas de caracteres terminadas en cero, que representan la lista de
argumentos disponible para el nuevo programa. El primer argumento, por
convenio, debe apuntar al nombre de fichero asociado con el fichero que
se esté ejecutando. El vector de punteros debe ser terminado por un
puntero NULL.
La función execle también especifica el entorno del proceso ejecutado
mediante un parámetro adicional que va detrás del puntero NULL que
termina la lista de argumentos de la lista de parámetros o el puntero
al vector argv. Este parámetro adicional es un vector de punteros a
cadenas de caracteres acabadas en cero y debe ser terminada por un
puntero NULL. Las otras funciones obtienen el entorno para la nueva
imagen de proceso de la variable externa environ en el proceso en
curso.
Algunas de estas funciones tienen una semántica especial.
Las funciones execlp y execvp duplicarán las acciones del shell al
buscar un fichero ejecutable si el nombre de fichero especificado no
contiene un carácter de barra inclinada (/). El camino de búsqueda es
el especificado en el entorno por la variable PATH. Si esta variable
no es especificada, se emplea el camino predeterminado
‘‘:/bin:/usr/bin’’. Además, ciertos errores se tratan de forma
especial.
Si a un fichero se le deniega el permiso (la función intentada execve
devuelve EACCES), estas funciones continuarán buscando en el resto del
camino de búsqueda. Si no se encuentra otro fichero, empero, retornarán
dando el valor EACCES a la variable global errno .
Si no se reconoce la cabecera de un fichero (la función intentada
execve devuelve ENOEXEC), estas funciones ejecutarán el shell con el
camino del fichero como su primer argumento. (Si este intento falla, no
se busca más.)
VALOR DEVUELTO
Si cualquiera de las funciones exec regresa, es que ha ocurrido un
error. El valor de retorno es -1, y en la variable global errno se
pondrá el código de error adecuado.
FICHEROS
/bin/sh
ERRORES
Todas estas funciones pueden fallar y dar un valor a errno para
cualquiera de los errores especificados para la función execve(2).
VÉASE TAMBIÉN
sh(1), execve(2), fork(2), environ(5), ptrace(2)
COMPATIBILIDAD
En algunos otros sistemas, la ruta por defecto (utilizada cuando el
entorno no contiene la variable PATH) tiene el directorio de trabajo
listado detrás de /bin y /usr/bin, como una medida anti-caballo de
Troya. Linux utiliza aquí la ruta por defecto con el tradicional "el
directorio de trabajo, el primero".
El comportamiento de execlp y execvp cuando hay errores al intentar
ejecutar el fichero es una práctica de antiguo, pero tradicionalmente
no ha sido documentada y el estándar POSIX no lo especifica. BSD (y
quizás otros sistemas) hacen un sleep() automático y un reintento a
continuación, si se encuentra el error ETXTBSY. Linux trata esto como
un error importante y el regreso de la función es inmediato.
Tradicionalmente, las funciones execlp y execvp hacían caso omiso de
todos los errores salvo los descritos arriba y ENOMEM y E2BIG, que
provocaban el regreso. Ahora también regresan si tiene lugar algún
error distinto de los descritos anteriormente.
CONFORME A
execl, execv, execle, execlp y execvp son conformes con IEEE
Std1003.1-88 (‘‘POSIX.1’’).