Execve () y variables de entorno.

Tengo una pregunta acerca de cómo Linux procesa el entorno varibales pasado a execve ():

Sinoposis para execve ():int execve (const char * nombre de archivo, char * const argv [], char * const envp []);

Antes de llamar a execve (), asignamos la memoria para guardar envs / args de la asignación de memoria del proceso actual. Pero después de execve (), todo el texto / data / bss / stack del proceso de llamada se sobrescribe con el nuevo programa, y ​​todas las asignaciones de memoria del proceso anterior no se conservan (incluida la memoria para envs / args pasados).

Para el nuevo programa, ¿dónde leer los envs / args? Hace el kernelHacer una copia de los envs / args pasados ​​y los colocó en la nueva asignación de memoria, o algunos otros trucos?

Respuestas a la pregunta(1)

Su respuesta a la pregunta