#include<stdio.h>main(){int p1,p2;while ((p1=fork())==-1); if(p1==0) putchar('b') ; else { while((p2=fork())==-1) ;if(p2==0) putchar('c');else putchar('a'); }}程序怎么解釋?運行結果是什么?
2 回答

FFIVE
TA貢獻1797條經驗 獲得超6個贊
fork() 創建子進程
根據fork()的返回值可以判斷該處是在父進程還是子進程的代碼里。
while((p1=fork())==-1);
是創建子進程,失敗重復,直到創建成功一個為止;
這時在創建的p1子進程里輸出'b';
然后,同理,在創建的p2子進程里輸出‘c’
最后,父進程輸出'a'
這個程序就是用一個父進程創建了兩個子進程,分別在每個進程里輸出一個不同的字符以作區別。
在終端看來,就是輸出了三個字符,但順序不確定。

SMILET
TA貢獻1796條經驗 獲得超4個贊
操作系統(OS)學的基本上都比較低層了,大致就是在計算機硬件上上搭載一個平臺,并且給予上層接口,使上層的軟件可以操作計算機~~
操作系統存在廣泛性,從小型機到大型機使用的系統都是不同的,微機上常見的OS諸如Linux,Mac OS X,Windows,DOS,Solaris,BSD,OS/2等,一般中型機以上的就都是運行Unix或者類Unix系統了~~
目前Top500的機子里大多數使用的都是Linux系統~~
你的串號我已經記下,采納后我會幫你制作
添加回答
舉報
0/150
提交
取消