调用exec()时会复制什么?

时间:2019-03-19 01:34:45

标签: process operating-system fork exec

假设我们输入了wget命令。我的理解是shell调用fork()并创建了一个子进程。在exec()被调用之前的这一刻,子进程与父进程相同,除了进程ID之类。

然后,在调用exec()时,内核用wget替换子进程的映像。

但是环境变量不会被覆盖,因此我很困惑父进程中替换的内容和保留的内容。

2 个答案:

答案 0 :(得分:1)

以下是我谦虚的尝试回答您的问题。但是,恐怕答案可能太过压倒性。

exec()对流程属性的影响

enter image description here

另外,请访问execve手册页。

答案 1 :(得分:0)

您要问的完全是系统特定的。对于一个太监系统,将保留一些内存区域,这些区域不会在exec()上重新映射。在Linux上,我认为该区域位于用户地址空间的高端。