.\" Copyright (c) 1983 Regents of the University of California.
.\" All rights reserved. The Berkeley software License Agreement
.\" specifies the terms and conditions for redistribution.
.\" @(#)exec.3 6.2 (Berkeley) %G%
execl, execv, execle, execlp, execvp, exec, execve, exect, environ \- execute a file
.B execl(name, arg0, arg1, ..., argn, 0)
.B char *name, *arg0, *arg1, ..., *argn;
.B "execle(name, arg0, arg1, ..., argn, 0, envp)"
.B "char *name, *arg0, *arg1, ..., *argn, *envp[];"
.B "exect(name, argv, envp)
.B "char *name, *argv[], *envp[];
.B extern char **environ;
These routines provide various interfaces to the
for a description of their properties; only
brief descriptions are provided here.
overlays the calling process with the named file, then
entry point of the core image of the file.
There can be no return from a successful exec; the calling
is a pointer to the name of the file
address null-terminated strings.
Two interfaces are available.
is useful when a known file with known arguments is
are the character strings
constituting the file and the arguments;
the first argument is conventionally
the same as the file name (or its last component).
A 0 argument must end the argument list.
version is useful when the number of arguments is unknown
are the name of the file to be
executed and a vector of strings containing
The last argument string must be followed
version is used when the executed file is to be
The program is forced to single step a single
instruction giving the parent an opportunity to
manipulate its state. On the VAX-11 this is done
by setting the trace bit in the process status
When a C program is executed,
is an array of character pointers
to the arguments themselves.
is conventionally at least one
and the first member of the array points to a
string containing the name of the file.
is directly usable in another
is a pointer to an array of strings that constitute
Each string consists of a name, an \*(lq=\*(rq, and a null-terminated value.
The array of pointers is terminated by a null pointer.
passes an environment entry for each global shell variable
defined when the program is called.
The C run-time start-off routine places a copy of
to pass the environment to any subprograms executed by the
are called with the same arguments as
but duplicate the shell's actions in searching for an executable
file in a list of directories.
The directory list is obtained from the environment.
/bin/sh shell, invoked if command file found
If the file cannot be found,
if it does not start with a valid magic number (see
if maximum memory is exceeded,
or if the arguments require too much space,
constitutes the diagnostic;
at least one of the execute-permission bits must be set for
is called to execute a file that turns out to be a shell
and if it is impossible to execute the shell,
will be modified before return.