如何创建一个孩子的孩子的孩子?我该怎么做10次。在下面的代码中,父级是固定的,子级是组成的。如何确保我要生一个孩子?
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main()
{
for(int i=0;i<5;i++) // loop will run n times (n=5)
{
if(fork() == 0)
{
printf("[son] pid %d from [parent] pid %d\n",getpid(),getppid());
exit(0);
}else{
printf("parrent");
}
}
for(int i=0;i<5;i++) // loop will run n times (n=5)
wait(NULL);
}
以下内容应作为您尝试执行的操作的基本示例:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int nSubprocess_count = 0;
int nFork_result;
int main()
{
nFork_result = fork();
while(nFork_result == 0)
{
printf("child %d from parent %d\n", getpid(), getppid());
nSubprocess_count += 1;
if(nSubprocess_count < 10)
nFork_result = fork();
else
break;
}
if(nFork_result != 0)
printf("parent %d\n", getpid());
sleep(5);
}
运行时,产生的输出类似于:
parent 4522
child 4523 from parent 4522
parent 4523
child 4524 from parent 4523
parent 4524
child 4525 from parent 4524
parent 4525
child 4526 from parent 4525
parent 4526
child 4527 from parent 4526
parent 4527
child 4528 from parent 4527
parent 4528
child 4529 from parent 4528
parent 4529
child 4530 from parent 4529
parent 4530
child 4531 from parent 4530
parent 4531
child 4532 from parent 4531
如您所见,每个子进程派生一个附加的子进程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句