通过前面的帖子,我们知道,子进程的创建还可以用vfork()进行创建。
vfork()函数创建子进程之后,子进程的代码段进行复制,而数据段是共享的,也就是说在数据段存放的数据会受到子进程和父进程的影响。
实验代码如下:
#include<unistd.h> #include<stdio.h> int main() { pid_t pid; int count=0; pid = vfork(); count++; printf("cout=%d\n",count); //return 0; }
运行结果如下:
mjl@mjl-machine:~/memory_exchange/fork_vfork$ ./vfork
cout=1
cout=2