fork和vfork的区别
首先:vfork会直接使用父进程存储空间,不会进行拷贝
其次:vfork保证子进程先进行运行,当子进程调用exit退出后,父进程才执行
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
pid_t pid;
int cnt =0;
pid =vfork();
if(pid >0)
{
while(1){
printf("this is father print pid = %d\n",getpid());
sleep(1);
printf("cnt = %d\n",cnt);
}
}
else if(pid == 0){
while(1){
printf("this is son print pid = %d\n",getpid());
sleep(1);
cnt ++;
if(cnt == 3){
exit(0); //遇到exit则进入父进程
}
}
}
return 0;
}