.\" Copyright (c) 1991 The Regents of the University of California.
.\" All rights reserved.
.\"
+.\" %%%LICENSE_START(BSD_4_CLAUSE_UCB)
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
+.\" %%%LICENSE_END
.\"
.\" @(#)exec.3 6.4 (Berkeley) 4/19/91
.\"
.\" Modified, 24 Jun 2004, Michael Kerrisk <mtk.manpages@gmail.com>
.\" Added note on casting NULL
.\"
-.TH EXEC 3 2010-09-25 "GNU" "Linux Programmer's Manual"
+.TH EXEC 3 2016-03-15 "GNU" "Linux Programmer's Manual"
.SH NAME
execl, execlp, execle, execv, execvp, execvpe \- execute a file
.SH SYNOPSIS
.sp
.B extern char **environ;
.sp
-.BI "int execl(const char *" path ", const char *" arg ", ...);"
+.BI "int execl(const char *" path ", const char *" arg ", ..."
.br
-.BI "int execlp(const char *" file ", const char *" arg ", ...);"
+.B " /* (char *) NULL */);"
.br
-.BI "int execle(const char *" path ", const char *" arg ,
+.BI "int execlp(const char *" file ", const char *" arg ", ..."
.br
-.BI " ..., char * const " envp "[]);"
+.B " /* (char *) NULL */);"
+.br
+.BI "int execle(const char *" path ", const char *" arg ", ..."
+.br
+.BI " /*, (char *) NULL, char * const " envp "[] */);"
.br
.BI "int execv(const char *" path ", char *const " argv "[]);"
.br
.br
.BI "int execvpe(const char *" file ", char *const " argv "[],"
.br
-.BI " char *const " envp "[]);"
+.BI " char *const " envp "[]);"
.sp
.in -4n
Feature Test Macro Requirements for glibc (see
to be executed.
.PP
The
-.I "const char *arg"
+.I "const char\ *arg"
and subsequent ellipses in the
.BR execl (),
.BR execlp (),
with the file being executed.
The list of arguments
.I must
-be terminated by a NULL
-pointer, and, since these are variadic functions, this pointer must be cast
-.IR "(char *) NULL" .
+be terminated by a null pointer,
+and, since these are variadic functions, this pointer must be cast
+.IR "(char\ *) NULL" .
.PP
The
.BR execv (),
associated with the file being executed.
The array of pointers
.I must
-be terminated by a NULL pointer.
+be terminated by a null pointer.
.PP
The
.BR execle ()
.I envp
argument is an array of pointers to null-terminated strings and
.I must
-be terminated by a NULL pointer.
+be terminated by a null pointer.
The other functions take the environment for the new process
image from the external variable
.I environ
.RI ( /bin/sh )
with the path of the file as its first argument.
(If this attempt fails, no further searching is done.)
-.SH "RETURN VALUE"
+.SH RETURN VALUE
The
.BR exec ()
-functions only return if an error has have occurred.
+functions return only if an error has occurred.
The return value is \-1, and
.I errno
is set to indicate the error.
The
.BR execvpe ()
function first appeared in glibc 2.11.
-.SH "CONFORMING TO"
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbw29 lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR execl (),
+.BR execle (),
+.BR execv ()
+T} Thread safety MT-Safe
+T{
+.BR execlp (),
+.BR execvp (),
+.BR execvpe ()
+T} Thread safety MT-Safe env
+.TE
+.SH CONFORMING TO
POSIX.1-2001, POSIX.1-2008.
The
upon which they returned.
They now return if any error other than the ones
described above occurs.
-.SH "SEE ALSO"
+.SH SEE ALSO
.BR sh (1),
.BR execve (2),
+.BR execveat (2),
.BR fork (2),
.BR ptrace (2),
.BR fexecve (3),
+.BR system (3),
.BR environ (7)