freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

linux軟件工程師(c語(yǔ)言)實(shí)用教程第6章(編輯修改稿)

2025-02-07 18:28 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 試。 23 進(jìn)程終止 ?濫用 fork函數(shù)會(huì)占滿系統(tǒng)進(jìn)程,而且子進(jìn)程與父進(jìn)程使用不同的內(nèi)存空間,不斷產(chǎn)生子進(jìn)程,也可能讓系統(tǒng)資源消耗殆盡。 ?Linux環(huán)境下 c終止進(jìn)程主要用 exit和 _exit函數(shù)。 ?例 65: 設(shè)計(jì)一個(gè)程序,要求子進(jìn)程和父進(jìn)程都在顯示輸出一些文字后分別用 exit和 _exit函數(shù)終止進(jìn)程。 ?編輯源程序代碼: 觀察結(jié)果可以看出,調(diào)用 exit函數(shù)時(shí),緩沖區(qū)中的記錄能正常輸出;而調(diào)用 _exit時(shí),緩沖區(qū)中的記錄無(wú)法輸出。 24 進(jìn)程終止 ?_exit()函數(shù)作用:直接使進(jìn)程停止運(yùn)行 ,清除其使用的內(nèi)存空間 ,并清除其在內(nèi)核中的各種數(shù)據(jù)結(jié)構(gòu); ?exit()函數(shù)則在執(zhí)行退出之前加了若干道工序, exit函數(shù)在調(diào)用 exit系統(tǒng)之前要查看文件的打開情況,把文件緩沖區(qū)中的內(nèi)容寫回文件。 25 進(jìn)程終止 ?exit函數(shù)說(shuō)明 ?_exit函數(shù)說(shuō)明 26 僵尸進(jìn)程 ?一個(gè)僵尸進(jìn)程 (zombie),是指已終止運(yùn)行,但尚末被清除的進(jìn)程,又稱為過(guò)渡進(jìn)程。 ?當(dāng)使用 fork函數(shù)創(chuàng)建子進(jìn)程時(shí),由于子進(jìn)程有可能比父進(jìn)程晚終止,父進(jìn)程終止后,子進(jìn)程還沒終止,子進(jìn)程就成了僵尸進(jìn)程。為避免這種情況,可以在父進(jìn)程中調(diào)用 wait或 waitpid函數(shù)。 ? wait函數(shù)是用于使父進(jìn)程阻塞,直到一個(gè)子進(jìn)程終止或者該進(jìn)程接到了一個(gè)指定的信號(hào)為止。 ? waitpid的作用和 wait一樣,但它并不一定要等待第一個(gè)終止的子進(jìn)程,它還有若干選項(xiàng),也能支持作業(yè)控制。 ?實(shí)際上 wait函數(shù)只是 waitpid函數(shù)的一個(gè)特例,在 Linux內(nèi)部實(shí)現(xiàn) wait函數(shù)時(shí)直接調(diào)用的就是 waitpid函數(shù)。 27 僵尸進(jìn)程 ?例 66: 設(shè)計(jì)一個(gè)程序,要求復(fù)制進(jìn)程,子進(jìn)程顯示自己的進(jìn)程號(hào) (PID)后暫停一段時(shí)間,父進(jìn)程等待子進(jìn)程正常結(jié)束,打印顯示等待的進(jìn)程號(hào) (PID)和等待的進(jìn)程退出狀態(tài)。 ?流程圖: 28 僵尸進(jìn)程 ?編輯源程序代碼: 此例中的子進(jìn)程運(yùn)行時(shí)間,明顯比父進(jìn)程時(shí)間長(zhǎng)。為了避免子進(jìn)程成為僵尸進(jìn)程,父進(jìn)程調(diào)用wait,阻塞父進(jìn)程的運(yùn)行,等待子進(jìn)程正常結(jié)束,父進(jìn)程才繼續(xù)運(yùn)行,直到正常結(jié)束。 29 僵尸進(jìn)程 ?wait函數(shù)說(shuō)明 30 僵尸進(jìn)程 ?例 67: 設(shè)計(jì)一個(gè)程序,要求用戶可以選擇是否復(fù)制進(jìn)程,子進(jìn)程模仿思科 (Cisco)1912交換機(jī)的開機(jī)界面,以命令行的方式讓用戶選擇進(jìn)入,父進(jìn)程判斷子進(jìn)程是否正常終止。 ?流程圖: 31 僵尸進(jìn)程 ?編輯源程序代碼: 32 僵尸進(jìn)程 ?編譯、運(yùn)行程序,提示是否復(fù)制進(jìn)程,先選擇“ 制進(jìn)程”,此時(shí)沒有產(chǎn)生子進(jìn)程,返回值為“ 0” 。 ?再次運(yùn)行程序后,選擇“ ”,此時(shí)產(chǎn)生子進(jìn)程,子進(jìn)程的功能是模擬交換機(jī)的開機(jī)界面,提示選擇畫面,這兒選擇 0,進(jìn)入子程序 display0,等待子程序運(yùn)行終止后,返回值為“ 1”,父進(jìn)程才終止。 ?修改程序:不用 waitpid函數(shù)。 ?再次運(yùn)行程序后,選擇“ ”,這時(shí)候父進(jìn)程沒有等待子進(jìn)程,也就是在模擬顯示完交換機(jī)的開機(jī)界面后,根本沒來(lái)得及輸入選擇,父進(jìn)程就終止了,子進(jìn)程就變成了僵尸進(jìn)程。 此例可以看出,在沒有語(yǔ)法、語(yǔ)義等錯(cuò)誤的情況下,程序還是沒有完成設(shè)計(jì)要求??梢姡诙噙M(jìn)程程序設(shè)計(jì)時(shí),除了養(yǎng)成使用完后就終止的良好習(xí)慣,還要讓子進(jìn)程工作完成后再終止,這個(gè)時(shí)候父進(jìn)程就得靈活使用 wait函數(shù)和 waitpid函數(shù)。 33 僵尸進(jìn)程 ?waitpid函數(shù)說(shuō)明 34 Linux守護(hù)進(jìn)程 ?守護(hù)進(jìn)程( Daemon)是運(yùn)行在后臺(tái)的一種特殊進(jìn)程。 ?守護(hù)進(jìn)程獨(dú)立于控制終端并且周期性地執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。 ?守護(hù)進(jìn)程是一種很有用的進(jìn)程。 Linux的大多數(shù)服務(wù)器就是用守護(hù)進(jìn)程實(shí)現(xiàn)的。 ?同時(shí),守護(hù)進(jìn)程完成許多系統(tǒng)任務(wù)。 35 守護(hù)進(jìn)程及其特性 ?守護(hù)進(jìn)程最重要的特性是后臺(tái)運(yùn)行。 ?其次,守護(hù)進(jìn)程必須與其運(yùn)行前的環(huán)境隔離開來(lái)。這些環(huán)境包括未關(guān)閉的文件描述符,控制終端,會(huì)話和進(jìn)程組,工作目錄以及文件創(chuàng)建掩碼等。這些環(huán)境通常是守
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1