在之前的小文中,我们提到了I使用fork()函数创建子进程的方法,那么,fork()到底有什么特性呢?下面就来详细的说明。
fork()函数创建的子进程和父进程之间有着千丝万缕的联系,从宏观上来说,是代码段的复制和数据段的复制。复制的代码段和数据段是纯粹的复制,两者之间不会有影响,也就是子进程和父进程分别运行自己的代码和使用自己的数据段,不会产生影响。
具体程序如下:
#include<unistd.h> #include<stdio.h> int main() { pid_t pid; int count=0; pid = fork(); count++; printf("cout=%d\n",count); }
运行之后,分别打印出两个count的数值,分别为1,运行结果如下:
mjl@mjl-machine:~/memory_exchange/fork_vfork$ ./fork
cout=1
mjl@mjl-machine:~/memory_exchange/fork_vfork$ cout=1