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?