.SH SYNOPSIS
.B #include <unistd.h>
.PP
-.BI "int execve(const char *" filename ", char *const " argv "[], "
+.BI "int execve(const char *" pathname ", char *const " argv "[], "
.br
.BI " char *const " envp []);
.SH DESCRIPTION
.BR execve ()
-executes the program referred to by \fIfilename\fP.
+executes the program referred to by \fIpathname\fP.
This causes the program that is currently being run by the calling process
to be replaced with a new program, with newly initialized stack, heap,
and (initialized and uninitialized) data segments.
.PP
-\fIfilename\fP must be either a binary executable, or a script
+\fIpathname\fP must be either a binary executable, or a script
starting with a line of the form:
.PP
.in +4n
.BR execve ().
.PP
If the set-user-ID bit is set on the program file referred to by
-\fIfilename\fP,
+\fIpathname\fP,
then the effective user ID of the calling process is changed
to that of the owner of the program file.
Similarly, when the set-group-ID
.I interpreter
must be a valid pathname for an executable file.
If the
-.I filename
+.I pathname
argument of
.BR execve ()
specifies an interpreter script, then
.PP
.in +4n
.EX
-\fIinterpreter\fP [optional-arg] \fIfilename\fP arg...
+\fIinterpreter\fP [optional-arg] \fIpathname\fP arg...
.EE
.in
.PP
.TP
.B EACCES
Search permission is denied on a component of the path prefix of
-.I filename
+.I pathname
or the name of a script interpreter.
(See also
.BR path_resolution (7).)
For a more detailed explanation of this error, see NOTES.
.TP
.B EFAULT
-.I filename
+.I pathname
or one of the pointers in the vectors
.I argv
or
.TP
.B ELOOP
Too many symbolic links were encountered in resolving
-.I filename
+.I pathname
or the name of a script or ELF interpreter.
.TP
.B ELOOP
The per-process limit on the number of open file descriptors has been reached.
.TP
.B ENAMETOOLONG
-.I filename
+.I pathname
is too long.
.TP
.B ENFILE
.TP
.B ENOENT
The file
-.I filename
+.I pathname
or a script or ELF interpreter does not exist, or a shared library
.\" FIXME but see http://sourceware.org/bugzilla/show_bug.cgi?id=12241
needed for the file or interpreter cannot be found.
.TP
.B ENOTDIR
A component of the path prefix of
-.I filename
+.I pathname
or a script or ELF interpreter is not a directory.
.TP
.B EPERM
.PP
.B extern char **environ;
.PP
-.BI "int execl(const char *" path ", const char *" arg ", ..."
+.BI "int execl(const char *" pathname ", const char *" arg ", ..."
.B " /* (char *) NULL */);"
.BI "int execlp(const char *" file ", const char *" arg ", ..."
.B " /* (char *) NULL */);"
-.BI "int execle(const char *" path ", const char *" arg ", ..."
+.BI "int execle(const char *" pathname ", const char *" arg ", ..."
.BI " /*, (char *) NULL, char * const " envp "[] */);"
-.BI "int execv(const char *" path ", char *const " argv "[]);"
+.BI "int execv(const char *" pathname ", char *const " argv "[]);"
.BI "int execvp(const char *" file ", char *const " argv "[]);"
.BI "int execvpe(const char *" file ", char *const " argv "[],"
.BI " char *const " envp "[]);"