#include <unistd.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(){
    __pid_t pid;

    //父进程输出
    
    printf("P1:I am father process,PID=%d,PPID=%d\n", getpid(), getppid());

    //生成子进程
    pid = fork();

    //父进程
    if(pid != 0){
        //pid判断归零
        pid = 0;
        pid = fork();
        
        //子进程
        if (pid == 0){
            printf("P12:I am young brother process,PID=%d,PPID=%d\n", getpid(), getppid());
            
            //此时pid为0，继续生成子进程
            pid = fork();
            if (pid == 0){
                printf("P121:我的学号是2024414290124,PID=%d,PPID=%d\n", getpid(), getppid());
            }
            //父进程
            else{
                //pid判断归零
                pid = 0;
                pid = fork();
                //子进程
                if (pid == 0){
                    printf("P122:我的姓名是吕锦中,PID=%d,PPID=%d\n", getpid(), getppid());
                }
                //父进程
                else{
                }
            }
        }
        //父进程
        else{
        }    
    }
    //子进程
    else{
        time_t t = time(NULL);
        printf("P11:当前时间是：%s,PID=%d,PPID=%d\n", ctime(&t), getpid(), getppid());
    }
}