叉子及其功能?

Pho*_*One 2 c fork

我有以下代码,并被问到将打印多少次"A","B","C","D","E"

fun() {
  printf("A");
  fork();
  printf("B");
  if (fork() != 0) {
     printf("C");
     fork();
     printf("D");
  }
  printf("E");
}
Run Code Online (Sandbox Code Playgroud)

所以它应该是:

A
A 
B
E
Run Code Online (Sandbox Code Playgroud)

我不确定我上面的答案是否正确?这行是if(fork() !=0 )做什么的?

koo*_*jah 6

文档:

成功时,子进程的PID在父进程中返回,并在子进程中返回0.失败时,在父项中返回-1,不创建子进程,并正确设置errno.