殊途同归的fork()
生活随笔
收集整理的這篇文章主要介紹了
殊途同归的fork()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為啥是殊途同歸呢,因為雖然fork后成為了兩個進程,但是仍然是父子關系,正所謂你大爺還是你大爺。
fork是有叉子的意思,在linux中就是先分配資源,再將原進程復制到新進程中,這樣新老進程就是一樣的了(不完全是,之后會解釋
首先拿雷電將軍來做個例子,影算是巴爾的一個復制吧(原來我也不玩原神
pid_t fpid;//全程是forked procesjis ID 顯示進程的ID號 fpid=fork();//用fpid接收fork()的返回值 if(fpid<0)cout<<"ERROR 我跟雷軍一點關系都沒有"<<endl; else if(fpid==0)cout<<"我是影啊"<<endl; elsecout<<"我是原版雷軍"<<endl;結果可以看到輸出:
我是影啊
我是原版雷軍
為什么一個順序的判斷結構會把兩個if中的內容都執行呢?
答案是在fork時已經出現兩個進程了,分別把代碼執行一遍,最終輸出只能在同一個屏幕罷了
?至于fork()返回的值:
??1)在父進程中,fork返回新創建子進程的進程ID;
??2)在子進程中,fork返回0;
??3)如果出現錯誤,fork返回一個負值;
總結:爸爸遺傳給兒子,可以直呼兒子的名
? ? ? ? ? ?兒子沒孩子,只能是0
? ? ? ? ? ? 如果是負數,說明是個悲傷的故事,親子鑒定孩子不是親生的
?
總結
以上是生活随笔為你收集整理的殊途同归的fork()的全部內容,希望文章能夠幫你解決所遇到的問題。