*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> execv (3)              
Title
Content
Arch
Section
 

EXEC(3)

Contents


NAME    [Toc]    [Back]

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

SYNOPSIS    [Toc]    [Back]

     #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    [Toc]    [Back]

     The exec family of functions replace the current process image with a new
     process image.  The functions described in this manual  page
are frontends
  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 execv() and  execvp()  functions  provide  an  array  of
pointers to nullterminated
  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 being executed.  The array of
pointers must
     be terminated by a null pointer itself.

     The execle() function also specifies the environment 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 nullterminated
 strings and must be terminated by a null  pointer
itself.  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
file name does
     not contain a slash (`/') character.  The search path is the
path specified
  in the environment by PATH variable.  If this variable
isn't specified,
 _PATH_DEFPATH from <paths.h> is used instead, its value being:
     /usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin

     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.

RETURN VALUES    [Toc]    [Back]

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

FILES    [Toc]    [Back]

     /bin/sh  default shell program

ERRORS    [Toc]    [Back]

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

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

SEE ALSO    [Toc]    [Back]

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

STANDARDS    [Toc]    [Back]

     Historically, the default path for the execlp() and execvp()
functions
     was  .:/bin:/usr/bin.   This was changed to improve security
and behaviour.

     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.

     execl(), execv(), execle(), execlp() and execvp() conform to
IEEE Std
     1003.1-1988 (``POSIX'').

OpenBSD     3.6                        January      24,      1994
[ Back ]
 Similar pages
Name OS Title
exec_with_loader Tru64 Execute a file with a loader
rexec IRIX execute a file on a remote cell
lockf FreeBSD execute a command while holding a file lock
fileevent IRIX Execute a script when a file becomes readable or writable
hosts.equiv Tru64 A file containing the names of remote systems and users that can execute commands on the local syste...
execve Linux execute program
VkCmdManager IRIX execute commands
if IRIX Execute scripts conditionally
perlrun OpenBSD how to execute the Perl interpreter
pagsh OpenBSD execute a command without authentication
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service