我正在尝试创建父和子的树,其中use可以为每个父进程选择子进程数。递归地,我还希望每个子进程创建父进程创建的相同数量的子进程。但我不确定如何使用execv()系统调用?
for(int i = 0; i < c; i++) {
printf("*** Inside the for loop ***\n");
if(h > 1){
pid = fork(); /*Creating the child*/
if(pid) {
//parent
continue;
}
else {
if(pid == 0) {
//execv();
break;
} else {
printf("fork error\n");
exit(1);
}
}
}
}
while((wpid == wait(&status)) > 0);
printf("%d : Waiting is done! Ending up\n", getpid());
上面的代码是main()的一部分并且工作正常。但我不确定如何创建子进程的子进程。有人可以帮我这个吗?也可以将exec()调用用于上述目的吗?
编辑:c和h是孩子的数量和树的高度。我总是在h-1高度创建子进程。并且树的每个节点下面有3个子节点。除非所有孩子都被终止或完成,否则父母也不会退出。