假设我们输入了wget
命令。我的理解是shell调用fork()
并创建了一个子进程。在exec()
被调用之前的这一刻,子进程与父进程相同,除了进程ID之类。
然后,在调用exec()
时,内核用wget
替换子进程的映像。
但是环境变量不会被覆盖,因此我很困惑父进程中替换的内容和保留的内容。
答案 0 :(得分:1)
答案 1 :(得分:0)
您要问的完全是系统特定的。对于一个太监系统,将保留一些内存区域,这些区域不会在exec()上重新映射。在Linux上,我认为该区域位于用户地址空间的高端。