#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:末尾加\n换行
printf("饿\n");
fflush(stdout);
return 0;
}
// 父进程继续执行,创建第二个子进程
pid2 = fork();
if (pid2 < 0) {
fprintf(stderr, "Fork Failed\n");
return 1;
} else if (pid2 == 0) {
// 子进程2:末尾加\n换行
printf("吃饭\n");
fflush(stdout);
return 0;
}
// 父进程
// 等待两个子进程都结束
wait(NULL);
wait(NULL);
// 父进程输出:末尾加\n换行
printf("饿就吃饭\n");
fflush(stdout);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8c3lzL3dhaXQuaD4KCmludCBtYWluKCkgewogICAgcGlkX3QgcGlkMSwgcGlkMjsKCiAgICAvLyDliJvlu7rnrKzkuIDkuKrlrZDov5vnqIsKICAgIHBpZDEgPSBmb3JrKCk7CgogICAgaWYgKHBpZDEgPCAwKSB7CiAgICAgICAgZnByaW50ZihzdGRlcnIsICJGb3JrIEZhaWxlZFxuIik7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9IGVsc2UgaWYgKHBpZDEgPT0gMCkgewogICAgICAgIC8vIOWtkOi/m+eoizHvvJrmnKvlsL7liqBcbuaNouihjAogICAgICAgIHByaW50Zigi6aW/XG4iKTsKICAgICAgICBmZmx1c2goc3Rkb3V0KTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICAvLyDniLbov5vnqIvnu6fnu63miafooYzvvIzliJvlu7rnrKzkuozkuKrlrZDov5vnqIsKICAgIHBpZDIgPSBmb3JrKCk7CgogICAgaWYgKHBpZDIgPCAwKSB7CiAgICAgICAgZnByaW50ZihzdGRlcnIsICJGb3JrIEZhaWxlZFxuIik7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9IGVsc2UgaWYgKHBpZDIgPT0gMCkgewogICAgICAgIC8vIOWtkOi/m+eoizLvvJrmnKvlsL7liqBcbuaNouihjAogICAgICAgIHByaW50Zigi5ZCD6aWtXG4iKTsKICAgICAgICBmZmx1c2goc3Rkb3V0KTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICAvLyDniLbov5vnqIsKICAgIC8vIOetieW+heS4pOS4quWtkOi/m+eoi+mDvee7k+adnwogICAgd2FpdChOVUxMKTsKICAgIHdhaXQoTlVMTCk7CgogICAgLy8g54i26L+b56iL6L6T5Ye677ya5pyr5bC+5YqgXG7mjaLooYwKICAgIHByaW50Zigi6aW/5bCx5ZCD6aWtXG4iKTsKICAgIGZmbHVzaChzdGRvdXQpOwoKICAgIHJldHVybiAwOwp9