Exec Function Call
int execl(pathname,arg0,arg1,arg2,...,argN,NULL )
int execle(pathname,arg0,arg1,arg2,...,argN,NULL,envp )
int execlp(pathname,arg0,arg1,arg2,...,argN,NULL )
int execlpe(pathname,arg0,arg1,arg2,....,argN,NULL,envp )
char *pathname,*arg0,*arg1,*arg2,....,*argN,*envp[];
int execv(pathname,arg,NULL )
int execve(pathname,arg,NULL,envp )
int execvp(pathname,arg,NULL )
int execvpe(pathname,arg,NULL,envp )
char *pathname,*arg[],*envp[];
- prototype in process.h
- loads and runs child processes
- pathname search based on MS-DOS search algorithm
o if no extension or period - search for exact file name -
if not found, add .exe and search again
o if extension given, search only for exact file name
o if period given, search for file name with no extension
- arg0 can be the same as the pathname
- at least one argument must be passed
- combined argument list cannot exceed 128 bytes
- execl..: arg0, arg1,...,argN passed as SEPARATE arguments
- execv..: arg[0], arg[1],...,arg[N] passed as argument ARRAY
- execlp, execlpe, execvp, execvpe: search for child in PATH
- returns no value if OK,
returns -1, with errno set to:
E2BIG (too many args)
EACCES (permission denied)
EMFILE (too many open files)
ENOENT (path or file not found)
ENOEXEC (exec format error)
ENOMEM (not enough memory).
- if successful, there is no return to the caller; the
caller is killed off
|
|