The differences are combinations of:
- L vs V: whether you want to pass the parameters to the exec’ed program as
- L: individual parameters in the call (variable argument list):
execl()
,execle()
,execlp()
, andexeclpe()
- V: as an array of char*
execv()
,execve()
,execvp()
, andexecvpe()
- L: individual parameters in the call (variable argument list):
- E: The versions with an ‘e’ at the end let you additionally pass an array of char* that are a set of strings added to the spawned processes environment before the exec’ed program launches. Yet another way of passing parameters, really.
- P: The versions with ‘p’ in there use the environment variable
PATH
to search for the executable file named to execute. The versions without the ‘p’ require an absolute or relative file path to be prepended to the filename of the executable if it is not in the current working directory.