如何在 if 语句中使用 fork()

use*_*577 2 c fork

有人可以向我解释一下是什么fork() != 0意思吗?据我了解,我认为这意味着如果 fork 不是假的?或者如果 fork 是真的那么....我不明白 Fork() 是如何是真的或假的,看到它只是创建了一个进程的副本到父子进程中。还有如果一个程序在那里说if (Fork() == 0)是什么意思?

 #include "csapp.h"

 int main(void)
 {
     int x = 3;

     if (Fork() != 0)
         printf("x=%d\n", ++x);

     printf("x=%d\n", --x);
     exit(0);
 }
Run Code Online (Sandbox Code Playgroud)

Dan*_*her 5

fork()如果失败则返回-1,如果成功则返回父级中分叉的子进程的pid,子进程中返回0。所以if (fork() != 0)测试它是否是父进程。