<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Linux內核服務(wù)例程與系統調用接口

Linux內核服務(wù)例程與系統調用接口

作者: 時(shí)間:2012-09-06 來(lái)源:網(wǎng)絡(luò ) 收藏

1.用宏生成例程

本文引用地址:http://dyxdggzs.com/article/148462.htm

高級語(yǔ)言應用程序一般不能直接訪(fǎng)問(wèn)函數。但是,總還是有一些高級用戶(hù)需要訪(fǎng)問(wèn)函數,如果讓用戶(hù)自己編寫(xiě)匯編語(yǔ)言程序來(lái)實(shí)現的陷入,顯然是不合適的,因為它既不安全也不符合設置操作的初衷___為用戶(hù)提供一個(gè)友好的程序設汁平臺。

由于用于封裝內核例程的例程有一個(gè)固定的框架,所以為了簡(jiǎn)化對內核例程的封裝工作,定義了從_sysca110~_sysca115的6個(gè)宏,高級用戶(hù)可使用這些宏把所需的內核例程封裝為系統例程。

上述這6個(gè)宏的名稱(chēng)后的數字表示被封裝的內核服務(wù)例程可使用的參數個(gè)數(系統調用號除外)。在上述宏對內核服務(wù)例程進(jìn)行封裝時(shí),規定,給宏傳遞參數的個(gè)數應是內核服務(wù)例程所需參數個(gè)數的2倍再加2,即2(n+1)個(gè),其中″是系統調用的參數個(gè)數。也就是說(shuō).對于內核服務(wù)例程的每一個(gè)參數,在宏中都必須用兩個(gè)參數來(lái)表達:一個(gè)用來(lái)指明參數的名稱(chēng),一個(gè)用來(lái)指明參數的類(lèi)型。還要附加兩個(gè)參數,分別用來(lái)表達系統調用返回值的名稱(chēng)和類(lèi)型。例如,用宏來(lái)封裝內核服務(wù)例程write()時(shí),就應按下面的格式來(lái)調用宏syscall3:_syscall3(int,write,int,fd,cONst char*,buf,unsingnde int,count)

其中:int和wrlte為返回值的類(lèi)型和名稱(chēng);int和fd為其參數fd的類(lèi)型和名稱(chēng);const char*和buf為其參數buf的類(lèi)型和名稱(chēng);unsigned lnt和count為其參數count的類(lèi)型和名稱(chēng)。

2.系統調用

一般情況下,作為一個(gè)完善的操作系統,是不會(huì )讓用戶(hù)應用程序直接使用名稱(chēng)類(lèi)似于.svsxyz()形式的系統凋用例程來(lái)調用內核服務(wù)例程的。所以,通常還要在系統調用例程的上面再用高級語(yǔ)言提供一個(gè)與普通函數一樣的,這樣用戶(hù)在通過(guò)這個(gè)凋用系統服務(wù)時(shí),感覺(jué)就像使用普通函數一樣方便。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

linux相關(guān)文章:linux教程




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>