execv manpage

Search topic Section
Get manual page for the search topic
List all commands matching the search topic
List all topics in the manpage index

EXEC(3)			   Linux Programmer's Manual		       EXEC(3)

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

       #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[]);

       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

       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-termi-
       nated  strings  that  represent the argument list available to the exe-
       cuted program.  The first argument, by convention, should point to  the
       filename	 associated  with  the file being executed.  The list of argu-
       ments must be terminated by a NULL pointer, and, since these are	 vari-
       adic functions, this pointer must be cast (char *) NULL.

       The  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 filename associated with the file being  executed.	The  array  of
       pointers must be terminated by a NULL pointer.

       The  execle()  function	also specifies the environment of the executed
       process by following the NULL pointer that terminates the list of argu-
       ments  in  the  parameter list or the pointer to the argv array with an
       additional parameter.  This additional parameter is an array of	point-
       ers  to	null-terminated	 strings  and  must  be	 terminated  by a NULL
       pointer.	 The other functions take the environment 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  filename
       does  not  contain  a slash (/) character.  The search path is the path
       specified in the environment by the PATH variable.   If	this  variable
       isn't specified, the default path '':/bin:/usr/bin'' is used.  In addi-
       tion, 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 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.


       All of these functions may fail and set errno for  any  of  the	errors
       specified for the library function execve(2).

       sh(1), execve(2), fork(2), ptrace(2), fexecve(3), environ(7)

       On  some other systems the default path (used when the environment does
       not contain the variable PATH) has the current working directory listed
       after  /bin  and	 /usr/bin, as an anti-Trojan-horse measure. Linux uses
       here the traditional "current directory first" default path.

       The behavior of execlp() and execvp() when errors occur while  attempt-
       ing to execute the file is historic practice, but has not traditionally
       been documented and is not specified by the POSIX  standard.  BSD  (and
       possibly	 other	systems) do an automatic sleep and retry if ETXTBSY is
       encountered. Linux treats it as a hard error and returns immediately.

       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.


BSD MANPAGE			  1993-11-29			       EXEC(3)
YoLinux.com Home Page
YoLinux Tutorial Index
Privacy Policy | Advertise with us | Feedback Form |
Unauthorized copying or redistribution prohibited.
    Bookmark and Share