execle

Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services

NAME

       execl,  execlp,  execle,  exect, execv, execvp - execute a
       file


SYNOPSIS

       #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 exect( const char *path, char *const argv[]);
       int execv( const char *path, char *const argv[]);
       int execvp( const char *file, char *const argv[]);


DESCRIPTION

       The  exec family of functions replaces the current process
       image with a new process image.  The  functions  described
       in  this  manual  page  are  front-ends  for  the function
       execve(2).  (See the manual page for execve  for  detailed
       information about the replacement of the current process.)

       The initial argument for these functions is  the  pathname
       of a file which is to be executed.

       The  const char *arg and subsequent ellipses in the execl,
       execlp, and execle functions can be thought  of  as  arg0,
       arg1,  ..., argn.  Together they describe a list of one or
       more pointers to null-terminated  strings  that  represent
       the  argument list available to the executed program.  The
       first argument, by convention, should point  to  the  file
       name associated with the file being executed.  The list of
       arguments must be terminated by a NULL pointer.

       The exect, execv, and execvp functions provide an array of
       pointers  to  null-terminated  strings  that represent the
       argument list available to the  new  program.   The  first
       argument,  by  convention,  should  point to the file name
       associated with the file begin  executed.   The  array  of
       pointers must be terminated by a NULL pointer.

       The  execle  and exect functions also specify the environ-
       ment of the executed process by following the NULL pointer
       that  terminates  the  list  of arguments in the parameter
       list or the pointer to the argv array with  an  additional
       parameter.   This  additional  parameter  is  an  array of
       pointers to null-terminated strings and must be terminated
       by  a NULL pointer.  The other functions take the environ-
       ment for the new process image from the external  variable
       environ in the current process.

       Some of these functions have special semantics.
       The functions execlp and execvp will duplicate the actions
       of the shell in searching for an executable  file  if  the
       specified  file  name does not contain a slash (/) charac-
       ter.  The search path is the path specified in  the  envi-
       ronment  by  the  PATH  variable.   If this variable isn't
       specified, the default path ``/bin:/usr/bin:'' is used (is
       this  true  for  Linux?).  In addition, certain errors are
       treated specially.

       If permission is denied for a file (the  attempted  execve
       returned  EACCES), these functions will continue searching
       the rest of the search path.  If no other file  is  found,
       however,  they  will return with the global variable errno
       set to EACCES.

       If the header of a file isn't  recognized  (the  attempted
       execve returned ENOEXEC), these functions will execute the
       shell with the path of the file  as  its  first  argument.
       (If this attempt fails, no further searching is done.)

       If  the  file  is  currently  busy  (the  attempted execve
       returned ETXTBUSY), these functions will sleep for several
       seconds,  periodically  re-attempting to execute the file.
       (Is this true for Linux?)

       The function exect executes a file with the program  trac-
       ing facilities enabled (see ptrace(2).


RETURN VALUES

       If  any  of the exec functions returns, an error will have
       occurred.  The return value is -1, and the global variable
       errno will be set to indicate the error.


FILES

       /bin/sh


ERRORS

       Execl,  execle,  execlp  and execvp may fail and set errno
       for any of the errors specified for the library  functions
       execve(2) and malloc(3).

       Exect  and  execv  may  fail  and set errno for any of the
       errors specified for the library function execve(2).


SEE ALSO

       sh(1), execve(2), fork(2), trace(2), environ(7), ptrace(2)


COMPATIBILITY

       Historically,  the  default path for the execlp and execvp
       functions was ``:/bin:/usr/bin''.   This  was  changed  to
       place  the  current directory last to enhance system secu-
       rity.

       The behavior of execlp and execvp when errors occur  while
       attempting  to  execute the file is historic practice, but
       has not traditionally been documented and is not specified
       by the POSIX standard.

       Traditionally, the functions execlp and execvp ignored all
       errors except for the ones described above and ENOMEM  and
       E2BIG,  upon  which they returned.  They now return if any
       error other than the ones described above occurs.


STANDARDS

       Execl, execv, execle, execlp and execvp  conform  to  IEEE
       Std1003.1-88 (``POSIX'').
Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services
Copyright (C) 1998 Hurricane Electric. All Rights Reserved.