-The C run-time start-off routine places a copy of
-.I envp
-in the global cell
-.I environ,
-which is used
-by
-.IR execv \ and \ execl
-to pass the environment to any subprograms executed by the
-current program.
-The
-.I exec
-routines use lower-level routines as follows
-to pass an environment explicitly:
-.RS
-.nf
-execve(file, argv, environ);
-execle(file, arg0, arg1, . . . , argn, 0, environ);
-.fi
-.RE
-.PP
-.I Execlp
-and
-.I execvp
-are called with the same arguments as
-.I execl
-and
-.I execv,
-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.
-.PP
-To aid execution of command files of various programs,
-if the first two characters of the executable file are '#!' then
-.I exec
-attempts to read a pathname from the executable file and use
-that program as the command files command interpreter. For example, the
-following command file sequence would be used to begin a
-.I csh
-script:
-.RS
-.nf
-#! /bin/csh
-# This shell script computes the checksum on /dev/foobar
-#
- ...
-.fi
-.RE
-A single parameter may be passed the interpreter, specified after the
-name of the interpreter; its length and the length of the name
-of the interpreter combined must not exceed 32 characters.
-The space (or tab) following the '#!' is mandatory, and the
-pathname must be explicit (no paths are searched).
-.SH FILES
-.ta \w'/bin/sh 'u
-/bin/sh shell, invoked if command file found
-by
-.I execlp
-or
-.I execvp
-.SH "SEE ALSO"
-fork(2), environ(5), csh(1)
-.SH DIAGNOSTICS
-If the file cannot be found,
-if it is not executable,
-if it does not start with a valid magic number (see
-.IR a.out (5)),
-if maximum memory is exceeded,
-or if the arguments require too much space,
-a return
-constitutes the diagnostic;
-the return value is \-1.
-Even for the super-user,
-at least one of the execute-permission bits must be set for
-a file to be executed.
-.SH BUGS