Реализация функции execve()
в пользовательском пространстве выглядит примерно так:
int execve(const char *filename, char * const argv[], char * const envp[]) {
return syscall(SYS_execve, filename, argv, envp);
}
Вся фактическая «работа» выполняется в ядре.В libc нет ничего особенно интересного, кроме, возможно, некоторой очистки потоков.