C 如何使用Fork()只创建两个子进程,这两个子进程都有下两个子进程? #包括 #包括 #包括 int main(){ printf(“父项:我的pid:%d我的ppid:%d\n”,getpid(),getppid()); pid_t pid0=fork(); if(pid0==0){ //儿童1 printf(“子1:我的pid:%d我的ppid:%d\n”,getpid(),getppid()); pid_t pid2=fork(); 如果(pid2==0){ //儿童11 printf(“孩子11:我的pid:%d我的ppid:%d\n”,getpid(),getppid()); }否则如果(pid2>0){ //儿童1 pid_t pid3=fork(); 如果(pid3==0){ //儿童12 printf(“子12:我的pid:%d我的ppid:%d\n”,getpid(),getppid()); }否则如果(pid3>0){ //儿童1 }否则{ fprintf(stderr,“Fork不工作”\n); 返回-1; } }否则{ fprintf(stderr,“Fork不工作”\n); 返回-1; } }否则如果(pid0>0){ //专利 pid_t pid1=fork(); 如果(pid1==0){ //儿童2 printf(“子2:我的pid:%d我的ppid:%d\n”,getpid(),getppid()); pid_t pid4=fork(); 如果(pid4==0){ //儿童21 printf(“孩子21:我的pid:%d我的ppid:%d\n”,getpid(),getppid()); }否则如果(pid4>0){ //儿童2 pid_t pid5=fork(); 如果(pid5==0){ //孩子22 printf(“子22:my pid:%d my ppid:%d\n”,getpid(),getppid()); }否则如果(pid5>0){ //儿童2 }否则{ fprintf(stderr,“Fork不工作”\n); 返回-1; } }否则{ fprintf(stderr,“Fork不工作”\n); 返回-1; } }否则如果(pid1>0){ //母公司 }否则{ fprintf(stderr,“Fork不工作”\n); 返回-1; } }否则{ fprintf(stderr,“Fork不工作”\n); 返回-1; } 返回0; }

C 如何使用Fork()只创建两个子进程,这两个子进程都有下两个子进程? #包括 #包括 #包括 int main(){ printf(“父项:我的pid:%d我的ppid:%d\n”,getpid(),getppid()); pid_t pid0=fork(); if(pid0==0){ //儿童1 printf(“子1:我的pid:%d我的ppid:%d\n”,getpid(),getppid()); pid_t pid2=fork(); 如果(pid2==0){ //儿童11 printf(“孩子11:我的pid:%d我的ppid:%d\n”,getpid(),getppid()); }否则如果(pid2>0){ //儿童1 pid_t pid3=fork(); 如果(pid3==0){ //儿童12 printf(“子12:我的pid:%d我的ppid:%d\n”,getpid(),getppid()); }否则如果(pid3>0){ //儿童1 }否则{ fprintf(stderr,“Fork不工作”\n); 返回-1; } }否则{ fprintf(stderr,“Fork不工作”\n); 返回-1; } }否则如果(pid0>0){ //专利 pid_t pid1=fork(); 如果(pid1==0){ //儿童2 printf(“子2:我的pid:%d我的ppid:%d\n”,getpid(),getppid()); pid_t pid4=fork(); 如果(pid4==0){ //儿童21 printf(“孩子21:我的pid:%d我的ppid:%d\n”,getpid(),getppid()); }否则如果(pid4>0){ //儿童2 pid_t pid5=fork(); 如果(pid5==0){ //孩子22 printf(“子22:my pid:%d my ppid:%d\n”,getpid(),getppid()); }否则如果(pid5>0){ //儿童2 }否则{ fprintf(stderr,“Fork不工作”\n); 返回-1; } }否则{ fprintf(stderr,“Fork不工作”\n); 返回-1; } }否则如果(pid1>0){ //母公司 }否则{ fprintf(stderr,“Fork不工作”\n); 返回-1; } }否则{ fprintf(stderr,“Fork不工作”\n); 返回-1; } 返回0; },c,C,有没有办法只从父进程创建两个子进程,这两个子进程都有下两个子进程?我尝试过类似的方法,但PPID对家长PID不正确。 ...............................................................................................................................................................................................

有没有办法只从父进程创建两个子进程,这两个子进程都有下两个子进程?我尝试过类似的方法,但PPID对家长PID不正确。
.............................................................................................................................................................................................................................................................................................................................................................到目前为止你试过什么?是的,有这样一种方法。
    #include <sys/types.h>
    #include <unistd.h>
    #include <stdio.h>

    int main() {
      printf("Parent:my pid: %d my ppid: %d\n",getpid(),getppid() );


      pid_t pid0 = fork();

      if (pid0 == 0) {
        //child 1
        printf("child 1:my pid: %d my ppid: %d\n",getpid(),getppid() );
        pid_t pid2 = fork();
        if (pid2 == 0) {
          //child 11
          printf("child 11:my pid: %d my ppid: %d\n",getpid(),getppid() );
        }else if (pid2 > 0) {
          //child 1
          pid_t pid3 = fork();
          if (pid3 == 0) {
            //child 12
            printf("child 12:my pid: %d my ppid: %d\n",getpid(),getppid() );
          }else if (pid3 > 0) {
            //Child 1
          }else{
            fprintf(stderr, "Fork doesn't work\n" );
            return -1;
          }
        }else{
          fprintf(stderr, "Fork doesn't work\n" );
          return -1;
        }
      }else if (pid0 > 0) {
        //patent
        pid_t pid1 = fork();
        if (pid1 == 0) {
          //child 2
          printf("child 2:my pid: %d my ppid: %d\n",getpid(), getppid() );
          pid_t pid4 = fork();
          if (pid4 == 0) {
            //child 21
            printf("child 21 :my pid: %d my ppid: %d\n",getpid(),getppid() );
          }else if (pid4 > 0) {
            //child 2
            pid_t pid5 = fork();
            if (pid5 == 0) {
              //child 22
              printf("child 22 :my pid: %d my ppid: %d\n",getpid(),getppid() );
            }else if (pid5 > 0) {
              //child 2

            }else{
              fprintf(stderr, "Fork doesn't work\n" );
              return -1;
            }
          }else{
            fprintf(stderr, "Fork doesn't work\n" );
            return -1;
          }
        }else if (pid1 > 0) {
          //parent
        }else{
          fprintf(stderr, "Fork doesn't work\n" );
          return -1;
        }
      }else {
        fprintf(stderr, "Fork doesn't work\n" );
        return -1;
      }
      return 0;
    }