The exec Functions
Unix systems provide a family of functions that replace
the execution context of a process with a new context described by an
executable file. The names of these functions start with the prefix
exec
, followed by one or two letters;
therefore, a generic function in the family is usually referred to as an
exec
function.
The exec
functions are listed
in Table 20-7; they
differ in how the parameters are interpreted.
Table 20-7. The exec functions
Function name | PATH search | Command-line arguments | Environment array |
---|---|---|---|
| No | List | No |
| Yes | List | No |
| No | List | Yes |
| No | Array | No |
| Yes | Array | No |
| No | Array | Yes |
The first parameter of each function denotes the pathname of the
file to be executed. The pathname can be absolute or relative to the
process’s current directory. Moreover, if the name does not include any
/ characters, the execlp( )
and
execvp( )
functions search for the
executable file in all directories specified by the PATH
environment variable.
Besides the first parameter, the execl(
)
, execlp( )
, and execle( )
functions include a variable number
of additional parameters. Each points to a string describing a
command-line argument for the new program; as the "l
" character in the function names suggests,
the parameters are organized in a list terminated by a NULL
value. Usually, the first command-line
argument duplicates the executable filename. Conversely, the execv( )
, execvp(
)
, and execve( )
functions ...
Get Understanding the Linux Kernel, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.