http://bluefish.blog.51cto.com/214870/38875 2007
fork()是一個系統(tǒng)調(diào)用函數(shù),。該系統(tǒng)調(diào)用復(fù)制當(dāng)前進(jìn)程,并在進(jìn)程表中創(chuàng)建一個與原進(jìn)程(被稱為父進(jìn)程)幾乎完全一樣的新表項,,并執(zhí)行同樣的代碼,,但該新進(jìn)程(這里被稱為子進(jìn)程)擁有自己的數(shù)據(jù)空間和環(huán)境參數(shù)。創(chuàng)建新進(jìn)程的主要用途在于在新進(jìn)程中使用exec()簇函數(shù)去執(zhí)行其他不同的程序,。 fork()調(diào)用返回位置處,,父進(jìn)程將恢復(fù)執(zhí)行,而子進(jìn)程則開始執(zhí)行,。在父進(jìn)程中,,調(diào)用fork()返回的是子進(jìn)程的進(jìn)程標(biāo)識號PID,而在子進(jìn)程中fork()返回的將是0值,,這樣,,雖然此時還是在同樣一程序中執(zhí)行,但已經(jīng)開始叉開,,各自執(zhí)行自己的那段代碼,。如果fork()調(diào)用失敗,則返回小于0的值,。 當(dāng)程序執(zhí)行完或有必要終止時就可以調(diào)用exit()來退出程序的執(zhí)行,。該函數(shù)會終止進(jìn)程并釋放其占用的內(nèi)核資源。而父進(jìn)程則可以使用wait()調(diào)用來查看或等待子進(jìn)程的退出,,并獲取被終止進(jìn)程的退出狀態(tài)信息,。 本文出自 “bluefish” 博客,請務(wù)必保留此出處http://bluefish.blog.51cto.com/214870/38875 |
|
來自: 心不留意外塵 > 《task sys》