如何進入系統呼叫

2021-06-14 07:25:58 字數 592 閱讀 1783

要想進入系統呼叫,一般通過c庫函式。函式通過軟中斷號0x80從使用者態進入核心態,呼叫相應的中斷處理程式,通過傳遞的引數在核心態執行中斷**。

通常系統呼叫靠c庫支援。使用者程式通過包含標準標頭檔案並和c庫鏈結,就可以使用系統呼叫。但是如果是自己在底層實現的系統呼叫,可能c庫並不支援,很慶幸,linux本身提供了一組巨集,用於直接對系統呼叫進行訪問。它會設定好暫存器並呼叫陷入命令。這些巨集就是_syscalln(),其中n的範圍從0到6,代表需要傳遞給系統呼叫的引數個數,這事因為該巨集必須了解有多少引數按照什麼次序壓入暫存器。舉個open系統呼叫的例子,c庫已經實現了open函式,我們這裡自己實現open系統呼叫函式。

open函式的系統呼叫定義是: long open(const char* filename, int flags, int mode);

我們自己用_syscalln()實現為:

#define nr_open 5

_syscall3(long, open, const char*, filename, int, flags, int, mode)

int main()

這裡我們沒有實現close,所以呼叫了c庫的,但是呼叫了自己實現的open函式。

如何 進入 Oracle isqlplus

以上,希望對你有所幫助。回答者 賓士m888 十四級 2009 12 10 08 15 沒啟動服務吧!不知道你是那個版本的 10g的話要先啟動監聽,再啟動isqlplus才行。命令如下 echo 啟動oracle服務 net start oracleserviceorcl echo 啟動監聽 net...

如何進入Shell

在 linux 發展的早期,唯一能用的工具就是 shell,linux 使用者都是在 shell 中輸入文字命令,並檢視文字輸出 如果有必要的話,shell 也能顯示一些基本的圖形。而如今 linux 的環境已經完全不同,幾乎所有的 linux 發行版都使用某種圖形桌面環境 例如 gnome kde...

如何進入MySQL

c users 電腦id d d cd d wamp wamp64 bin mysql mysql5.7.19 bin d wamp wamp64 bin mysql mysql5.7.19 bin mysql hlocalhost uroot p enter password welcome to...