Functions in the exec() family have different behaviours:
- l : arguments are passed as a list of strings to the main()
- v : arguments are passed as an array of strings to the main()
- p : path/s to search for the new running program
- e : the environment can be specified by the caller
You can mix them, therefore you have:
- int execl(const char *path, const char *arg, ...);
- int execlp(const char *file, const char *arg, ...);
- int execle(const char *path, const char *arg, ..., char * const envp[]);
- int execv(const char *path, char *const argv[]);
- int execvp(const char *file, char *const argv[]);
- int execvpe(const char *file, char *const argv[], char *const envp[]);
For all of them the initial argument is the name of a file that is to be executed.
For more information read exec(3) man page:
man 3 exec # if you are running a UNIX system