vfork函数

vfork函数

vfork函数不是对父进程的完整拷贝,是先拷贝一个可以运行的最小的父进程资源的集合,先保证可以运行,然后在运行的时候,根据实际情况,需要什么资源在从父进程拷贝过来,这种方法称为:写时拷贝技术

vfork函数还有一个特点:子进程先运行,只有在子进程运行完了,父进程才可以运行。

例子:

int main()

{

pid_t pid;

int cnt=0;

pid=vfork();

if(pid<0)

{

perror("fork");

exit(0);

}

else if(pid==0)

{

sleep(5);

cnt++;

}

else

{

cnt++;

}

 

printf("cnt:%d pid:%d\n",cnt,getpid());

//return 0;

exit(0);

}


你可能感兴趣的:(Linux,系统编程)