有一段代码如下,老师给的
int main(void){
pid_t pid;
printf("Original program, pid=%d\n",getpid());
pid=fork();
if(pid==0){
printf("In child process,pid=%d,ppid=%d\n",getpid(),getppid());
}
else{
printf("In parent, pid=%d,pid value now=%d\n",getpid(),pid);
}
}
运行结果是:
Original program, pid=987
In child process, pid=988, ppid=987
In parent, pid=987, pid value now=988
我的问题是:
为什么if执行完了又执行了else了呢?
是因为他们一个是在子进程环境中,一个是在父进程中么?
如果是,什么时候程序是在子进程的环境中的,什么时候是在父进程的环境中的?
作为初学者,可能连问题的关键都没有抓住,希望大侠能通俗解释一番~
小人不胜感激~~