// 请分析如下程序,如何实现创建2个子进程, 第一个子进程输出ABC, 第二子进程输出 DEF。 // 做法二 #include #include #include #include int main(int argc, char *argv[]) { // 创建2个子进程 int i; for (i = 0; i < 2; i++) { pid_t pid = fork(); if (pid == 0) { if (i == 0) printf("%d ABC\n", getpid()); else printf("%d DEF\n", getpid()); _exit(0); } } // 等待所有子进程结束 while (1) { // 等待任意子进程结束,并获取已终止子进程的进程ID int pid = waitpid(-1, NULL, WUNTRACED); // -1 表示等待任意子进程 printf("子进程 %d over\n", pid); if (pid == -1) break; } printf("主进程 %d over\n", getpid()); return 0; }