2 fengyejushi fengyejushi 于 2014.10.16 19:49 提问

关于与子进程与父进程

下面是我实验的一段代码,结果产生了,无限的输出。我的推测是子进程从f返回时,f的栈帧出栈,从而当子进程结束时。父进程由于f出栈从而又从新执行了main,从而产生无限输出。求教???????????

#include
#include

void f()
{
if(vfork()<0)
{
perror("fork");
}

}

int
main(int argc,char * argv[])
{
pid_t pid;
pid=getpid();
printf("pid=%d\n",pid);
f();
if(getpid()!=pid)
{
printf("pid=%d\n",getpid());
}
else
{
printf("pid=%d\n",getpid());
}
return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片