创建进程
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
int main()
{
int count=0;
pid_t pid;
pid=vfork();//用vfork()函数
count++;
printf("count=%d\n",count);
exit(0);//此程序为什么非得用这个
return 0;
}
/*************************************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
int main()
{
int count=0;
pid_t pid;
pid=fork();
count++;
printf("count=%d\n",count);
//exit(0);//而用fork()却可以不用exit();
return 0;
}
[解决办法]
vfork保证子进程先运行,在它调用exec或exit之后父进程才可能被调度运行。如果在
调用这两个函数之前子进程依赖于父进程的进一步动作,则会导致死锁。