我有一个 C 源代码,如下所示。
#include<stdio.h>
#include<stdlib.h>
#include<sys/wait.h>
#include<unistd.h>
#include<sys/types.h>
int main(void) {
pid_t process_id;
int status;
if (fork() == 0)
{
if (fork() == 0)
{
printf("A");
} else {
process_id = wait(&status);
printf("B");
}
} else {
if (fork() == 0)
{
printf("C");
exit(0);
}
printf("D");
}
printf("0");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我在终端中执行它时,我在这张图片中出现了一些输出:
我实际上很困惑这些输出是如何生成的。例如, D0A0~$ B0C 是如何生成的。
谁能解释一下这些输出是如何生成的,以及这段代码中 exit(0) 的功能?