#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

int main() {
    pid_t pid1, pid2;

    // 创建第一个子进程
    pid1 = fork();

    if (pid1 < 0) {
        fprintf(stderr, "Fork Failed\n");
        return 1;
    } else if (pid1 == 0) {
        // 子进程1
        printf("我是第一个子进程，我的PID是：19870905\n");
        fflush(stdout); // 立即刷新输出缓冲区
        return 0; // 子进程1结束
    }

    // 父进程继续执行，创建第二个子进程
    pid2 = fork();

    if (pid2 < 0) {
        fprintf(stderr, "Fork Failed\n");
        return 1;
    } else if (pid2 == 0) {
        // 子进程2
        printf("我是第二个子进程，我的PID是：20060928\n");
        fflush(stdout); // 立即刷新输出缓冲区
        return 0; // 子进程2结束
    }

    // 父进程
    // 等待两个子进程都结束
    wait(NULL);
    wait(NULL);

    printf("我是父进程，我的PID是：1787075\n");
    fflush(stdout);

    return 0;
}