熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 進程控制開發(fā)之:Linux進程控制編程

進程控制開發(fā)之:Linux進程控制編程

作者: 時間:2013-09-13 來源:網(wǎng)絡 收藏

本文引用地址:http://www.bjwjmy.cn/article/257131.htm

7.2編程

1.()

中創(chuàng)建一個新進程的惟一方法是使用()。()中一個非常重要的,和讀者以往遇到的函數(shù)有一些區(qū)別,因為它看起來執(zhí)行一次卻返回兩個值。難道一個函數(shù)真的能返回兩個值嗎?希望讀者能認真地學習這一部分的內(nèi)容。

(1)fork()函數(shù)說明。

fork()函數(shù)用于從已存在的進程中創(chuàng)建一個新進程。新進程稱為子進程,而原進程稱為父進程。使用fork()函數(shù)得到的子進程是父進程的一個復制品,它從父進程處繼承了整個進程的地址空間,包括進程上下文、代碼段、進程堆棧、內(nèi)存信息、打開的文件描述符、信號控制設定、進程優(yōu)先級、進程組號、當前工作目錄、根目錄、資源限制和控制終端等,而子進程所獨有的只有它的進程號、資源使用和計時器等。

因為子進程幾乎是父進程的完全復制,所以父子兩個進程會運行同一個程序。因此需要用一種方式來區(qū)分它們,并使它們照此運行,否則,這兩個進程不可能做不同的事。

實際上是在父進程中執(zhí)行fork()函數(shù)時,父進程會復制出一個子進程,而且父子進程的代碼從fork()函數(shù)的返回開始分別在兩個地址空間中同時運行。從而兩個進程分別獲得其所屬fork()的返回值,其中在父進程中的返回值是子進程的進程號,而在子進程中返回0。因此,可以通過返回值來判定該進程是父進程還是子進程。

同時可以看出,使用fork()函數(shù)的代價是很大的,它復制了父進程中的代碼段、數(shù)據(jù)段和堆棧段里的大部分內(nèi)容,使得fork()函數(shù)的系統(tǒng)開銷比較大,而且執(zhí)行速度也不是很快。

(2)fork()函數(shù)語法。

表7.2列出了fork()函數(shù)的語法要點。

表7.2 fork()函數(shù)語法要點

所需頭文件

#includesys/types.h>//提供類型pid_t的定義
#includeunistd.h>

函數(shù)原型

pid_tfork(void)

函數(shù)返回值

0:子進程

子進程ID(大于0的整數(shù)):父進程

-1:出錯

(3)fork()函數(shù)使用實例。

/*fork.c*/

#includesys/types.h>

#includeunistd.h>

#includestdio.h>

#includestdlib.h>

intmain(void)

{

pid_tresult;

/*調(diào)用fork()函數(shù)*/

result=fork();

/*通過result的值來判斷fork()函數(shù)的返回情況,首先進行出錯處理*/

if(result==-1)

{

printf(Forkerrorn);

}

elseif(result==0)/*返回值為0代表子進程*/

{

printf(Thereturnedvalueis%dn

Inchildprocess!!nMyPIDis%dn,result,getpid());

}

else/*返回值大于0代表父進程*/

{

printf(Thereturnedvalueis%dn

Infatherprocess!!nMyPIDis%dn,result,getpid());

}

returnresult;

}

將可執(zhí)行程序下載到目標板上,運行結(jié)果如下所示:

$arm-linux-gccfork.c–ofork(或者修改Makefile)

$./fork

Thereturnedvalueis76/*在父進程中打印的信息*/

Infatherprocess!!

MyPIDis75

Thereturnedvalueis:0/*在子進程中打印的信息*/

Inchildprocess!!

MyPIDis76

從該實例中可以看出,使用fork()函數(shù)新建了一個子進程,其中的父進程返回子進程的PID,而子進程的返回值為0。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 3 4 5 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉