读书人

关于进程有关问题

发布时间: 2013-12-02 12:00:40 作者: rapoo

关于进程问题
#include <stdio.h>
   main( )
   {
     int p1,p2;
     while((p1=fork( ))= = -1); /*创建子进程p1*/
     if (p1= =0) putchar('b');
     else
       {
          while((p2=fork( ))= = -1); /*创建子进程p2*/
          if(p2= =0) putchar('c');
          else putchar('a');
       }
   }

这个程序,实验指导书上说 abc,bac,cab,都有可能。

但我在ubuntu虚拟机下,任何情况都只有acb输出,有没有大神能够解释 进程
[解决办法]
输出几种可能性是因为fork函数无法确认父子进程,到底哪个进程先执行而已!
可能因为环境的不同,父子进程前后执行的顺序不同。
环境关乎操作系统,编译环境等条件,没有发生变化,所以结果也没有变!

读书人网 >C语言

热点推荐