我想知道这段代码是如何工作的
#include<stdio.h> 
#include<stdlib.h> 
#include<sys/wait.h> 
#include<unistd.h> 
  
int main() 
{ 
    pid_t cpid; 
    if (fork()== 0) 
        exit(0);         
    else
        cpid = wait(NULL); 
    printf("Parent pid = %d\n", getpid()); 
    printf("Child pid = %d\n", cpid); 
  
    return 0; 
Run Code Online (Sandbox Code Playgroud)
(fork()==0)如果我们在子进程中,则返回 true。对?
然后exit(0)将终止子进程。
那么wait(NULL)如果我们不能进入else案例,除非我们在父进程中,否则如何返回子pid ?
该fork函数创建一个新进程并返回两次:一次返回父进程,一次返回子进程。
在子进程中,fork返回 0 以便if运行调用exit. 在父进程中,fork返回子进程的 pid,因此它进入else它调用的部分,wait一旦子进程退出,该部分将返回子进程的 pid 。