運行結果:
父進程顯示字符“父親”,子進程分別顯示字符“child1”和“child2”。
為了更好地分析源程序,我添加了獲取進程id的代碼:
運行結果:
流程創建和分析:
/* Execute while((p 1 = fork())= =-1);後來父進程創建了第壹個子進程,它復制了父進程的資源,成為壹個獨立於父進程的進程,並且第壹個子進程的fork()返回值為0,父進程的fork()返回值為新創建的子進程號4。*/
/* Execute while((p2 = fork())= =-1);之後子進程創建第二個子進程,第二個子進程復制第壹子進程的資源,成為壹個獨立的進程,第二個子進程的fork()返回值為0,第壹子進程的fork()返回值為新創建的子進程號5。*/
這三個過程的pid是:
父流程=3
第壹個子進程=4
第二子流程=5