I have been following a system programming course recently and I came through the system calls exec() and execve(). So far I cannot find a
The arguments are different for these functions.
The function execl, execlp, and execle require each of the command line arguments to the new program to be specified as separate arguments.
The execv, execvp and execve, we have to build an array of pointers to the arguments, and the address of this array is the argument to these three functions.
The execve, execle functions allow us to pass the pointer to an array of pointers to the environment strings. The other four functions use the environ variable in the calling process to copy the existing environment to the program.
p means that the functions takes a file name argument and uses the PATH environment variable to find the executable file.l means that the function takes a list of arguments and is mutually exclusive with the letter v, which means that it takes an argv[] vector.The letter e means that the function takes an envp[] array instead of using the current environment.
The new program inherits the following additional features from the calling process.
Process ID and the Parent Process ID
Real user ID and Real Group ID
Supplementary group IDs
Process group ID
Session ID
Controlling terminal
Time left until alarm clock
Current working directory
Root directory
File mode creation mask
File locks
Process signal mask
Pending signals
Resource limits
Values for tms_utime, tms_stime, tms_cutime, and tms_cstime.