首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于进程有关问题

2013-12-02 
关于进程问题#include stdio.h   main( )   {     int p1,p2     while((p1fork( )) -1)/*创建子

关于进程问题
#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函数无法确认父子进程,到底哪个进程先执行而已!
可能因为环境的不同,父子进程前后执行的顺序不同。
环境关乎操作系统,编译环境等条件,没有发生变化,所以结果也没有变!

热点排行