系統呼叫與庫函式的區別?

2021-08-05 20:26:02 字數 649 閱讀 6280

一. 概念

系統呼叫(英語:system call),指執行在使用者空間的應用程式向作業系統核心請求某些服務的呼叫過程。 系統呼叫提供了使用者程式與作業系統之間的介面。一般來說,系統呼叫都在核心態執行。由於系統呼叫不考慮平台差異性,由核心直接提供,因而移植性較差(幾乎無移植性)。

庫函式(library function),是由使用者或組織自己開發的,具有一定功能的函式集合,一般具有較好平台移植性,通過庫檔案(靜態庫或動態庫)向程式設計師提供功能性呼叫。程式設計師無需關心平台差異,由庫來遮蔽平台差異性。

二,區別

呼叫※函式庫呼叫 vs 系統

三. 聯絡

一般而言,跟核心功能與作業系統特性緊密相關的服務,由系統呼叫提供;

具有共通特性的功能一般需要較好的平台移植性,故而由庫函式提供。

庫函式與系統呼叫在功能上相互補充,如程序間通訊資源的管理,程序控制等功能與平台特性和核心息息相關,必須由系統呼叫來實現。

檔案 i/o操作等各平台都具有的共通功能一般採用庫函式,也便於跨平台移植。

某些情況下,庫函式與系統呼叫也有交集,

如 庫函式中的i/o操作的內部實現依然需要呼叫系統的i/o方能實現。

系統呼叫與庫函式呼叫的區別

1 系統呼叫和庫函式的關係 系統呼叫通過軟中斷int 0x80從使用者態進入核心態。函式庫中的某些函式呼叫了系統呼叫。函式庫中的函式可以沒有呼叫系統呼叫,也可以呼叫多個系統呼叫。程式設計人員可以通過函式庫呼叫系統呼叫。高階程式設計也可以直接採用int 0x80進入系統呼叫,而不必通過函式庫作為中介。...

系統呼叫與庫函式呼叫的區別

1 系統呼叫和庫函式的關係 系統呼叫通過軟中斷int 0x80從使用者態進入核心態。函式庫中的某些函式呼叫了系統呼叫。函式庫中的函式可以沒有呼叫系統呼叫,也可以呼叫多個系統呼叫。程式設計人員可以通過函式庫呼叫系統呼叫。高階程式設計也可以直接採用int 0x80進入系統呼叫,而不必通過函式庫作為中介。...

庫函式呼叫與系統呼叫的區別

linux下對檔案操作有兩種方式 系統呼叫 system call 和庫函式呼叫 library functions 系統呼叫實際上就是指最底層的乙個呼叫,在linux程式設計裡面就是底層呼叫的意思。面向的是硬體。而庫函式呼叫則面向的是應用開發的,相當於應用程式的api,採用這樣的方式有很多種原因,...