日期:2014-05-16  浏览次数:20882 次

初学者请教关于fork调用的返回值

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

int main ()

{
   pid_t pid;
  pid = fork();
 if (pid <0)
{
   printf("error\n");
   exit(1);   
}
if (pid ==0)
   printf("child procees\n");
else
   printf (" parent process\n");
   return 0
}






为什么输出会是parent process 
child process
我看一本书上说甚至可能输出是 顺序不确定的.我的问题是 fork的返回值不是确定的吗?那么输出结果该是一个啊
------解决方案--------------------
fork调用一次,返回2次,一个在父进程返回,一个在子进程返回,应该打印2次。
------解决方案--------------------
接楼上,既然是两个进程,由于进程之间的无关性,所以,哪个进程先打印,哪个进程后打印是不能确定的。