Provided by: manpages-es_1.55-10_all bug

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'').