Chapter Contents |
Previous |
Next |
execl |
Portability: | POSIX.1 conforming, UNIX compatible |
SYNOPSIS | |
DESCRIPTION | |
RETURN VALUE | |
EXAMPLE | |
RELATED FUNCTIONS |
SYNOPSIS |
#include <unistd.h> int execl(const char *file, const char *arg0, ..., NULL);
DESCRIPTION |
Like all of the
exec
functions,
execl
replaces the calling process image with a new process image.
This has the effect of running a new program with the process ID of the calling
process. Note that a new process is not started; the new process image simply
overlays the original process image. The
execl
function is most commonly used to overlay a process image that
has been created by a call to the
fork
function.
file
arg0, ...,
NULL
NULL
pointer. The first argument,
arg0
, is required and must contain the name of the executable file
for the new process image. If the new process image is a normal SAS/C
main
program, the list of arguments
will be passed to
argv
as a pointer to an array of strings. The number of strings in the array is
passed to the
main()
function
as
argc
.
ARG_MAX
specifies the maximum number of bytes, including the
NULL
terminator at the end of the string, that
can be passed as arguments to the new process image. The value of
ARG_MAX
is obtained by calling the
sysconf
function with the
_SC_ARG_MAX
symbol.
RETURN VALUE |
A successful call to
execl
does not have a return value because the
new process image overlays the calling process image. However, a
-1
is returned if the call to
execl
is unsuccessful.
EXAMPLE |
The following code fragment illustrates
creating a new process and executing an HFS file called
newShell
:
#include <sys/types.h> #include <unistd.h> #include <stdio.h> main() { pid_t pid; if ((pid = fork()) == -1) perror("fork error"); else if (pid == 0) { execl("/u/userid/bin/newShell", "newShell", NULL); printf("Return not expected. Must be an execl() error.\\n"); } \}
RELATED FUNCTIONS |
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.