我有一个问题,Linux处理环境变量如何传递给execve():
execosis(): int execve(const char*filename,char*const argv [],char*const envp []);
在调用execve()之前,我们从当前进程的内存映射中分配用于保存envs/args的内存.但是在execve()之后,调用进程的所有text/data/bss/stack都被新程序覆盖,并且不保留旧进程的所有内存映射(包括传递的envs/args的内存).
对于新程序,在哪里阅读envs/args?内核是否复制了传递的envs/args并将其放在新的内存映射或其他一些技巧上?