色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > fork函數(shù)的小誤區(qū)

fork函數(shù)的小誤區(qū) 時間:2018-08-16      來源:未知

對于fork這個函數(shù)相信大家都不陌生。我們知道他會創(chuàng)建一個子進(jìn)程,返回兩個值,也有fork會返回兩次這么個說法。那今天在這里我們就來整理一下對這個函數(shù)的認(rèn)識。

對于fork會返回兩次這個說法我不知道大家都是怎么理解的,“返回一次然后又返回了一次”,在剛接觸這個函數(shù)的時候有許多同學(xué)都是這樣認(rèn)為的。那在這里呢我們就來對這個說法進(jìn)行一下剖析。

首先我們知道,在進(jìn)程內(nèi)調(diào)用fork之后,如果調(diào)用成功會怎樣啊?沒錯,他會創(chuàng)建出一個子進(jìn)程,但是創(chuàng)建出來的這個子進(jìn)程在哪里呢?這里呢就涉及到了進(jìn)程結(jié)構(gòu)的組成知識。首先我們來看,一個進(jìn)程在虛擬地址上由低到高依次存儲著正文段,數(shù)據(jù)段(這里我們把初始化和未初始化的數(shù)據(jù)統(tǒng)稱為數(shù)據(jù)段),和堆棧段,主要呢是這三個段。那我們說正文段,它有著只讀共享的屬性。也就是說,對于一個程序,我們可以多次運行,但是它們運行起來卻是不同的進(jìn)程。那這些不同的進(jìn)程是不是共享著同一個正文段啊。那我們的fork函數(shù)也一樣,在進(jìn)程調(diào)用fork函數(shù)之后,子進(jìn)程產(chǎn)生,子進(jìn)程與調(diào)用fork的進(jìn)程,也就是父進(jìn)程共享著同一個正文段。在fork函數(shù)成功返回之后,也就是有兩個進(jìn)程同時運行著同一個正文段。我們來看一下下面這段注釋:

pid = fork();

if(pid < 0)

{

perror{};

exit(1);

}

/* 此時有兩個程序運行到這 */

else if(pid == 0)

{

/*子進(jìn)程代碼*/

}else

{

/*父進(jìn)程代碼*/

}

我們來看上面這段代碼的注釋,也就是說在fork成功返回之后,會有兩個程序同時運行到 /*此時有兩個程序運行到這*/這個注釋處,此時父子進(jìn)程里的fork便已經(jīng)返回了不同的值。在父進(jìn)程中,父進(jìn)程的fork返回了一個大于0的數(shù),我們都知道那是子進(jìn)程的PID;在子進(jìn)程中,子進(jìn)程的fork返回了一個0,表示此進(jìn)程是由別的進(jìn)程fork出來的。那我們的父子進(jìn)程都會接著向下運行,判斷下面的else if。在父進(jìn)程中,由于fork返回值大于0,故else if(pid == 0)這個判斷語句不成立,然后執(zhí)行下面的else里面的代碼。在子進(jìn)程中,pid是等于0的,也就是說子進(jìn)程在判斷了else if(pid == 0)條件后發(fā)現(xiàn)條件成立,然后它去執(zhí)行里面的代碼。這樣的fork框架就可以讓我們父子進(jìn)程在同一個正文段中區(qū)分各自進(jìn)程的代碼塊。

那現(xiàn)在我們再來看這個“fork會返回兩次”的說法還嚴(yán)謹(jǐn)嗎?沒錯,我們fork也是只會返回一次的,只不過在不同的進(jìn)程中(調(diào)用者和被創(chuàng)建者)它返回的值不一樣罷了,然后由于共用同一個正文段,所以會給我們造成返回兩次的錯覺。

上一篇:Android串口調(diào)試助手實現(xiàn)

下一篇:BLE協(xié)議棧

熱點文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 无码精品国产一区二区三区免费 | 欧美日韩一区中文字幕 | 娇喘潮喷抽搐高潮视频 | 巨女丰满爆乳潮喷喷汁视频 | 黄色大片在线免费观看 | 亚洲国产精品无码一线岛国 | 99国精产品一区二区三区a片 | 一区二区免费高清观看国产丝瓜 | 哦┅┅快┅┅用力啊┅┅在线观看 | 国产AV国产精品白丝JK制服 | 草草久久97超级碰碰碰 | 欧美经典一区二区三区 | 18禁无遮挡无码啪啪网站 | 亚洲精品国产首次亮相 | 最近更新中文字幕手机版 | 中国一级黄色片子 | 在线亚洲AV不卡一区二区 | 在线亚洲欧美日韩精品专区 | 爱豆传媒国产剧情 | 一二三四在线观看免费视频 | 欧美日韩一区二区三区免费视频 | 撕开奶罩疯狂揉吮奶头 | 法国少妇XXXX做受 | 欧美va在线视频 | 日产精品卡2卡三卡乱码网站 | 中文字幕第一页亚洲 | 亚洲AV无码男人的天堂 | 国产亚洲精品久久yy5099 | 狠狠久久噜噜熟女 | 中国多毛妞体内射精 | 亚洲午夜福利院在线观看 | 欧美另类在线制服丝袜国产 | 国产精品久久久久无码人妻 | 欧美福利影院 | 日本久久不卡视频 | 尤物一区二区 | 日韩视频中文字幕精品偷拍 | 国精品无码一区二区三区在线 | 亚洲国产AV高清无码 | 久久伊人色AV天堂九九小黄鸭 | 顶级国内国模无码视频 |