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);
}