假设我们有以下内容:
pid_t pid;
pid = fork();
if(pid == 0) {
if(fork()) printf("A");
else printf("B");
printf("C");
}
else {
if(!fork()) printf("A");
else if (fork()) printf("B");
else printf("C");
}
要打印多少个 A、B 和 C?
我对 fork() 在“if”中如何工作以及我是否处于父进程或子进程中有点困惑。
叉子返回:
所以,当你调用fork时,你可以说
pid_t pid = fork();
if (pid == -1) {
// Il y a une erreur
perror("fork");
return EXIT_FAILURE;
} else if (pid == 0) {
// We are in the child
} else {
// We are in the father
}