首页 文章

copy-on-write如何在fork-exec中工作? [关闭]

提问于
浏览
1

进程 fork 是子进程,并在子进程中调用 exec() . 使用copy-on-write,在 fork 之后,父进程和子进程共享内存 .

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

1 回答

  • 1

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

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

    如果 fork() 后面紧跟 exec() ,则通常不会使用为子项创建的地址空间,而是替换为新的地址空间,即为进程 exec () ed创建的地址空间 .

相关问题