exec

exec bezeichnet eine Familie von UNIX-Funktionen, die das aktuell laufende Programm eines Prozesses durch ein anderes Programm ersetzt.

Der Prozess bleibt dabei grundsätzlich derselbe, aber sein Programmtext, Datenbereich und Kontrollfluss werden durch das neue Programm ersetzt.

execvp

int execvp(const char *file, char *const argv[]);

Typisches Muster in einer Shell

pid_t pid = fork();

if (pid == 0) {
    execvp(args[0], args);
    // nur erreichbar, falls execvp fehlschlägt
} else {
    waitpid(pid, NULL, 0);
}

Zusammenhang mit fork