使用fork的父和子进程

时间:2015-03-28 09:04:38

标签: linux process fork

在Linux下调用fork()系统调用时,父进程和子进程共享相同的数据。这是什么类型的数据? (例如堆数据还是什么?)

我的意思是如果有所有内存(堆栈,堆和文本)的副本,那么这是低效的。必须有其他事情发生。

Copy-on-write告诉我,在写入之前,所有内容都不会重复。

1 个答案:

答案 0 :(得分:2)

父进程和子进程不共享任何数据。不是因为另一个过程会看到一个过程的变化。在fork时,子进程在数据方面与父进程完全相同(但并非所有内容都重复 - 请参阅fork手册页以获取确切的详细信息)。对于所有全局数据,堆和堆栈都是重复的。但同样,请注意它是"重复"不是"分享"。