我有许多过程要创建。每个儿子都必须创造两个儿子。我使用了递归解决方案,它可以工作,但创建的进程数不是我想要的。
这是我尝试过的:
void generate_kid(int g, int res){
pid_t kid1, kid2;
int status1, status2;
if( res > 0 ){
if( kid1 = fork() ){
if( res > 0){
if( kid2 = fork() ){
}
else {
printf("I am %d, my father is %d\n",getpid(),getppid());
generate_kid(g,res/2-1);
}
}
}
else {
printf("I am %d, my father is %d\n",getpid(),getppid());
generate_kid(g,res/2-1);
}
}
waitpid(kid1,&status1,0);
waitpid(kid2,&status2,0);
}