这是SOR到目前为止,我已经做了:嵌套fork()的树++
#include <stdio.h>
#include <stdlib.h>
int main()
{
int p1,p2,p3,p4,i;
int left,leftPid;
int right;
left=fork();
right=fork();
for(i=0;i<=2;i++)
{
if(left==0)
printf("\nleft Child Process. Level: %d | myPID: %d | myParent: %d\n",i,getpid(),getppid());
else
leftPID=left;
if (right==0)
{
printf("\nright Child Process. Level: %d | myPID: %d | myParent: %d\n",i,getpid(),getppid());
right=fork();
}
else
{
printf("\nParent Process. Level %d | My left Child: %d | My right Child: %d | myPID: %d\n",i,leftPID,right,getpid());
}
}
}
我需要那种输出的:
左子进程。等级:1 | myPID:23560 | myParent:23559
父进程。等级:0 |我的左小孩:23560 |我的右边小孩:23561 | myPID:23559
left Child Process。等级:2 | myPID:23562 | myParent:23561
left Child Process。等级:3 | myPID:23564 | myParent:23563
right Child Process。等级:3 | myPID:23565 | myParent:23563
父进程。等级:2 |我的左小孩:23564 |我的右边小孩:23565 | myPID:23564
父进程。等级:1 |我的左小孩:23562 |我的右边小孩:23563 | myPID:23561
这里是一个树表示什么,我需要:
而且我做的代码是远离我需要什么。我希望有人能帮我解决这个问题。