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

Process 调用exec()时会复制什么?,process,operating-system,fork,exec,Process,Operating System,Fork,Exec,假设我们输入了wget命令。我的理解是shell调用fork(),并创建一个子进程。在调用exec()之前的这一时刻,子进程与父进程相同,除了进程ID之类的内容 然后,当调用exec()时,内核用wget替换子进程的映像 但是环境变量并没有被覆盖,所以我不清楚父进程中哪些被替换,哪些被保留。您所要求的完全是系统特定的。对于一个宦官系统,将有一些内存区域被留出,在exec()上不会被重新映射。在Linux上,我相信这个区域位于用户地址空间的高端。下面是我谦虚地回答您的问题。不过,我恐怕答案可能过于

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

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


但是环境变量并没有被覆盖,所以我不清楚父进程中哪些被替换,哪些被保留。

您所要求的完全是系统特定的。对于一个宦官系统,将有一些内存区域被留出,在exec()上不会被重新映射。在Linux上,我相信这个区域位于用户地址空间的高端。

下面是我谦虚地回答您的问题。不过,我恐怕答案可能过于笼统

exec()对进程属性的影响


另外,一定要访问手册页。

Wow!非常感谢。