execve () i zmienne środowiskowe

Mam pytanie, jak Linux przetwarza środowisko varibales przekazane do execve ():

Synopoza dla execve ():int execve (const char * nazwa_pliku, char * const argv [], char * const envp []);

Przed wywołaniem execve () przydzielamy pamięć do przechowywania envs / args z mapowania pamięci bieżącego procesu. Ale po execve () cały tekst / data / bss / stos procesu wywołującego jest nadpisywany przez nowy program, a wszystkie mapowania pamięci starego procesu nie są zachowywane (w tym pamięć dla przekazanych envs / args).

Dla nowego programu, gdzie czytać envs / args? Czy jądroZrób kopię przekazanych envs / args i umieścił je w nowym mapowaniu pamięci lub w innych sztuczkach?

questionAnswers(1)

yourAnswerToTheQuestion