话说fork后,子进程复制与父进程fork以后相同的代码``````
那请问如果fork处于一个循环中呢?
比如下边的程序``````
我的测试结果是进入死循环了`````
故我推测只复制了fork以后的代码```````但是如果这样````` 那个与while后边的大括号匹配的大括号 如何处理 不会出错吗?
# include <stdio.h>
# include <unistd.h>
int main(int argc,char *argv[])
{
int i;
pid_t pidt;
printf(" in father process :\n pid= %d\n pgid= %d ppid=%d\n**********\n",getpid(),getpgid(0),getppid());
while(1)
{
if(getpid()==pidt)
{
printf("子进程来到上边的循环了");
break;
}
if((pidt=fork())==0)
{
printf(" in child pid =%d pgid=%d ppid=%d",getpid(),getpgid(0),getppid());
}
else
{
printf("in parent : \nthe child is--%d\n",pidt);
break;
}
}
return 0;
}
那请问如果fork处于一个循环中呢?
比如下边的程序``````
我的测试结果是进入死循环了`````
故我推测只复制了fork以后的代码```````但是如果这样````` 那个与while后边的大括号匹配的大括号 如何处理 不会出错吗?
# include <stdio.h>
# include <unistd.h>
int main(int argc,char *argv[])
{
int i;
pid_t pidt;
printf(" in father process :\n pid= %d\n pgid= %d ppid=%d\n**********\n",getpid(),getpgid(0),getppid());
while(1)
{
if(getpid()==pidt)
{
printf("子进程来到上边的循环了");
break;
}
if((pidt=fork())==0)
{
printf(" in child pid =%d pgid=%d ppid=%d",getpid(),getpgid(0),getppid());
}
else
{
printf("in parent : \nthe child is--%d\n",pidt);
break;
}
}
return 0;
}
