copy-on-write如何在fork-exec中工作?

时间:2015-08-08 11:37:31

标签: c linux fork exec copy-on-write

进程fork是子进程,并在子进程中调用exec()。 通过写时复制,在fork父进程和子进程共享内存之后。

当子进程调用exec()加载另一个进程时,Linux是否会将父内存复制到新内存,而子进程也会将另一个进程加载到这个新内存中?如果是这样,这是否意味着在执行fork-exec时,使用copy-on-write分叉的进程没有数据?

1 个答案:

答案 0 :(得分:1)

  

使用copy-on-write,在fork父进程和子进程共享内存之后。

是阅读是的,不是写作。为分叉子进程创建一个新的地址空间,只有在子进程写入它之前才会填充它。

如果fork()后面紧跟exec(),则fork()通常不会使用为孩子创建的地址空间,但会被新的地址空间替换,即创建的地址空间对于流程exec ()编辑