进程fork
是subprocess,并在subprocess中调用exec()
。 随着写入时拷贝, fork
之后父进程和subprocess共享内存。
当subprocess调用exec()
来加载另一个进程时,Linux会将父内存复制到新内存中,并且subprocess还将另一个进程加载到这个新内存中? 如果是这样,这是否意味着在fork-exec时没有数据的写入时复制的过程呢?
随着写入时拷贝,
fork
之后父进程和子进程共享内存。
是的阅读,没有写作。 为分叉的子进程创建一个新的地址空间,只有在子进程写入之前,才会填充它。
如果fork()
紧跟在exec()
,则通常不会使用为fork()
创建的地址空间,而是会使用新的地址空间,也就是为进程exec ()
ed创建的地址空间。