我试图找出if之后控件的位置(fork()== 0) 在下面的程序中 控制if(fork()== 0)的下一个语句是什么?
#include<stdio.h>
#include <sys/types.h>
#include<unistd.h>
void forkexample()
{
// child process because return value zero
if (fork()==0)
printf("Hello from Child!\n");
// parent process because return value non-zero.
else
printf("Hello from Parent!\n");
}
int main()
{
forkexample();
return 0;
}
答案 0 :(得分:2)
Fork创建另一个进程(称为子进程)并同时运行这两个程序。像Jean写的那样,在子进程中返回0,在父进程中返回!= 0。
然后两个流程分别使用自己的数据运行,控制流程等。此时它可以采用任何一种方式(先是孩子,然后是父,反之亦然)。
ps:我会发表评论,但我不能。答案 1 :(得分:0)
从fork返回控件位于原始调用点,子节点中返回值为0,父节点中返回值为!= 0。然后这两个过程都有自己的独立生活。一个人将if分支另一个拿走。就是这样。