vfork()与fork()有什么区别:
1.vfork直接使用父进程储存空间,不拷贝
2.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("cnt = %d\n",cnt);
printf("this is father print,pid = %d\n",pid);
sleep(1); //睡眠1秒,防止刷屏
}
}
else if(pid ==0){
while(1){
printf("this is chilid print,pid = %d\n",pid);
sleep(1); //防止刷屏
cnt++;
if(cnt == 3){
exit(0); //退出子进程
}
}
}
return 0;
}