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