站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        linux中fork和exec有什么區(qū)別

        linux中fork和exec的區(qū)別:1、fork用于創(chuàng)建一個新的進程,稱為子進程,而exec則是用指定的程序替換當前進程的全部內(nèi)容;2、exec的前后進程id沒有改變,而fork重新創(chuàng)建了子進程后id改變了。

        linux中fork和exec有什么區(qū)別

        本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。

        linux中fork和exec有什么區(qū)別

        fork和exec都是和進程相關(guān)的調(diào)用.

        fork

        調(diào)用fork可以創(chuàng)建一個新的進程稱為子進程, 調(diào)用fork函數(shù)的進程稱為父進程, 子進程的所有內(nèi)容都和父進程相同, 除了pcd(進程控制模塊), 如果這兩個進程都沒有對內(nèi)存做寫操作的話, 那么兩個進程共享調(diào)用fork函數(shù)的進程的內(nèi)存頁, 這樣表面上看fork創(chuàng)建進程比exec創(chuàng)建進程快. 但只要兩個進程其中一個對內(nèi)存做了修改, 那么在修改之前, 就會把內(nèi)存頁復制一份給子進程用.

        exec

        調(diào)用exec創(chuàng)建進程, 實際上不是創(chuàng)建進程, 更準確的說是加載可執(zhí)行文件, 調(diào)用exec后會把exec中指定的可執(zhí)行文件加載到調(diào)用exec的進程的空間內(nèi), 并把調(diào)用exec的進程的內(nèi)存更新為exec中指定的可執(zhí)行文件的內(nèi)容.

        區(qū)別

        fork主要是Linux用來建立新的進程(線程)而設(shè)計的,exec()系列函數(shù)則是用來用指定的程序替換當前進程的全部內(nèi)容。因此exec()系列函數(shù)常常在前三個函數(shù)使用以后調(diào)用,來建立一個全新的程序運行環(huán)境。Linux用init進程啟動其余進程的過程通常都是這樣的

        fork是最簡單的調(diào)用,不須要任何參數(shù),僅僅是在建立一個子進程并為其建立一個獨立于父進程的空間。

        我們用fork函數(shù)創(chuàng)建新進程后,經(jīng)常會在新進程中調(diào)用exec函數(shù)去執(zhí)行另外一個程序(比如在我們寫程序時需要使用我們之前的寫過的某個程序的功能,通過該方式直接去調(diào)用一個可執(zhí)行程序可以大大的簡化我們的程序)。當進程調(diào)用exec函數(shù)時,該進程被完全替換為新程序。因為調(diào)用exec函數(shù)并不創(chuàng)建新進程,所以前后進程的ID并沒有改變。

        父進程通過fork()的方式產(chǎn)生一個一模一樣的子進程,創(chuàng)建出來的子進程再以exec函數(shù)的方式來執(zhí)行其實際要執(zhí)行的進程,最終就成為一個可以執(zhí)行某些特定功能的子進程。

        一個進程一旦調(diào)用exec類函數(shù),它本身就“死亡”了,系統(tǒng)把代碼段替換成新的程序的代碼,廢棄原有的數(shù)據(jù)段和堆棧段,并為新程序分配新的數(shù)據(jù)段與堆棧段,唯一留下的,就是進程號,也就是說,對系統(tǒng)而言,還是同一個進程,不過已經(jīng)是另一個程序了。即調(diào)用exec族函數(shù)后,其后面的程序都不會在執(zhí)行了。

        推薦學習:Linux視頻教程

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 精品一区二区三区自拍图片区| 精品一区二区三区在线视频| 国产精品亚洲片在线观看不卡| 国产亚洲精品免费视频播放| 2022国产精品不卡a| 亚洲午夜精品一级在线播放放 | 亚洲综合精品香蕉久久网| 国产成人高清精品一区二区三区| 99re国产精品视频首页| 国内精品伊人久久久久av一坑| 欧美精品在线免费| 国产伦精品一区二区三区视频猫咪 | 中文字幕久久精品| 无夜精品久久久久久| 韩国三级中文字幕hd久久精品| 国产乱码精品一区二区三区四川人| 日韩精品区一区二区三VR| 久久精品国产亚洲5555| 国产精品综合专区中文字幕免费播放 | 国产精品热久久无码av| 中国精品videossex中国高清| 国产精品欧美久久久天天影视| 2021国产精品视频| 国产92成人精品视频免费| 2021最新国产精品网站| 99久久99这里只有免费费精品| 国产精品无码成人午夜电影| 精品国产第一国产综合精品| 精品国产VA久久久久久久冰| 精品国产福利一区二区| 91精品在线播放| 免费91麻豆精品国产自产在线观看 | 91精品啪在线观看国产电影 | 国产精品久久久久AV福利动漫| 少妇人妻偷人精品免费视频| 无码人妻精品一区二区三区东京热| 亚洲国产精品福利片在线观看 | 在线精品亚洲| 婷婷精品国产亚洲AV麻豆不片| 精品久久无码中文字幕| 69SEX久久精品国产麻豆|