可以每个接触到多进程编程的人在遇到fork()函数的时候都会由一些疑惑,它怎么能返回两次?而且返回值不同。对于以前的认知大家都知道一个函数只能返回依次啊。 呵呵,这是fork的神奇所在,它为什么这么神奇?它是怎么实现的?下面我根据自己得理解简单的说一下,不过另外也欢迎大家的讨论。 首先要明白的是fork函数的作用,它是用来创建一个子进程,和父进程一样的子进程,是父进程的一个副本。 子进程将会有自己的地址空间,并且会获得父进程的数据段的副本以及堆栈的副本,所获得的副本都是精确拷贝。所谓副本是一模一样的,包括变量,堆栈的结构。 另外有一点是子进程和父进程共享代码段。