九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Linux中fork和exec有什么區(qū)別?

  在學(xué)習(xí)任何技術(shù)的時(shí)候,很多人經(jīng)常會(huì)因?yàn)楦悴欢畬I(yè)術(shù)語(yǔ)而犯愁,甚至也經(jīng)常因?yàn)閮蓚€(gè)相似的專業(yè)術(shù)語(yǔ)摸不著頭腦,比如:Linux中fork和exec。fork和exec都是和進(jìn)程相關(guān)的調(diào)用,而且都運(yùn)行相同的程序。那么Linux中fork和exec有什么區(qū)別?詳細(xì)內(nèi)容請(qǐng)看下文。

  fork

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

  exec

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

  區(qū)別:

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

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

  我們用fork函數(shù)創(chuàng)建新進(jìn)程后,經(jīng)常會(huì)在新進(jìn)程中調(diào)用exec函數(shù)去執(zhí)行另外一個(gè)程序。當(dāng)進(jìn)程調(diào)用exec函數(shù)時(shí),該進(jìn)程被完全替換為新程序。因?yàn)檎{(diào)用exec函數(shù)并不創(chuàng)建新進(jìn)程,所以前后進(jìn)程的ID并沒有改變。

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

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

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
linux中system和exec函數(shù)的區(qū)別
fork與vfork的區(qū)別?
fork、vfork、clone區(qū)別
Linux下的多進(jìn)程編程 - fanqiang.com
linux下通過腳本實(shí)現(xiàn)自動(dòng)重啟程序的方法
fork()創(chuàng)建新進(jìn)程
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服