Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages

Linux 2.6 - man page for execvp (linux section 3)

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

NAME
       execl, execlp, execle, 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 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	execve(2).   (See
       the  manual  page  for  execve(2) for further details about the replacement of the current
       process image.)

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

       The  const  char *arg and subsequent ellipses in the execl(), execlp(), and execle() func-
       tions 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 filename associ-
       ated  with  the	file  being executed.  The list of arguments must be terminated by a NULL
       pointer, and, since these are variadic 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 arguments in the argument list or the pointer
       to  the	argv  array with an additional argument.  This additional argument is an array of
       pointers 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 envi-
       ron in the current process.

   Special semantics for execlp() and execvp()
       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 addition, certain
       errors are treated specially.

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

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

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

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

CONFORMING TO
       POSIX.1-2001.

NOTES
       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 attempting 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.

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

COLOPHON
       This page is part of release 3.27 of the Linux man-pages project.  A  description  of  the
       project,   and	information  about  reporting  bugs,  can  be  found  at  http://www.ker-
       nel.org/doc/man-pages/.

GNU					    2009-02-22					  EXEC(3)


All times are GMT -4. The time now is 01:27 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
UNIX.COM Login
Username:
Password:  
Show Password