程序2、
#include<stdio.h>
main()
{
int p1,p2;
while((p1=fork())= =-1);
if(p1= =0)
printf(“b.My process ID is %d”,getpid());
else
{
while((p2=fork())= =-1);
if(p2==0)
printf(“c.My process ID is %d”,getpid());
else printf(“a.My process ID is %d”,getpid());
}
}
1、写出程序的运行结果,并分析为什么会得到这样的结果。
2、画出程序执行的进程树并在相应的进程节点上标出进程号
程序3、
main()
{int m,n,k;
m=fork();
printf("PID:%d\t",getpid());
printf("The return value of fork():%d\t\t",m);
printf("he\n");
n=fork();
printf("PID:%d\t",getpid());
printf("The return value of fork():%d\t\t",n);
printf("ha\n");
k=fork();
printf("PID:%d\t",getpid());
printf("The return value of fork():%d\t\t",k);
printf("ho\n");
}
程序4、
#include<stdio.h>
main()
{
int p1,p2,i;
while((pl=fork())= =-1);
if(pl= =0)
for(i=0;i<50000;i++)
printf("son%d\n”,i);
else
{
while((p2=fork())= =-1);
if(p2= =0)
for(i=0;i<50000;i++)
printf("daughter%d\n”,i);
else
for(i=0,i<50000;i++)
printf("parent%d\n)”,i);
}