1. 程式人生 > >Linux系統fork和exec建立新程序

Linux系統fork和exec建立新程序

fork之後經常跟隨著exec,即建立一個程序後就立馬替換程序,所以並不執行一個父程序資料段、棧和堆的完全複製,因此這裡使用的是寫時拷貝技術。

我們使用程式來演示替換:

使用的程式程式碼類似演示父子程序的程式碼,但是子程序使用了exec進行替換。

程式碼仍然會出現父子程序的列印交替出現嗎?

可以看到,父程序總共列印了七次,子程序直接被替換成了ps,並且沒有列印資訊。

這是因為,exec函式成功之後不會進行返回,失敗才返回。

有了這個寫時拷貝和成功不返回特性,就可以花費較少的資源建立一個新程序並進行替換了。