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!非常感谢。