// 请分析如下程序,如何实现创建2个子进程, 第一个子进程输出ABC, 第二子进程输出 DEF。 // 做法二 #include #include #include #include #include // atexit void clearAll1() { printf("%d 清退资源1...\n", getpid()); } void clearAll2() { printf("%d 清退资源2...\n", getpid()); } int main(int argc, char *argv[]) { atexit(clearAll1); // 清退,退出前执行 atexit(clearAll2); int pid = fork(); if (pid == 0) { sleep(5); printf("%d 子进程结束\n", getpid()); // atexit(clearAll); // 清退,退出前执行,子进程无法清退 _exit(1); } else if (pid > 0) { // atexit(clearAll); // 清退,退出前执行 wait(NULL); // 等待子进程 printf("主进程 %d 结束\n", getpid()); } return 0; }