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 ...
Get Understanding the Linux Kernel, Second 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.