小编moh*_*n_m的帖子

进程中的 fork()、wait() 和 exit() 功能

我有一个 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) 的功能?

c unix operating-system fork wait

3
推荐指数
1
解决办法
115
查看次数

标签 统计

c ×1

fork ×1

operating-system ×1

unix ×1

wait ×1