系統呼叫與庫函式的區別?
系統呼叫(英語:system call),指執行在使用者空間的應用程式向作業系統核心請求某些服務的呼叫過程。 系統呼叫提供了使用者程式與作業系統之間的介面。一般來說,系統呼叫都在核心態執行。由於系統呼叫不考慮平臺差異性,由核心直接提供,因而移植性較差(幾乎無移植性)。
庫函式(library function),是由使用者或組織自己開發的,具有一定功能的函式集合,一般具有較好平臺移植性,通過庫檔案(靜態庫或動態庫)向程式設計師提供功能性呼叫。程式設計師無需關心平臺差異,由庫來遮蔽平臺差異性。
二,區別
呼叫※函式庫呼叫 VS 系統
三. 聯絡
一般而言,跟核心功能與作業系統特性緊密相關的服務,由系統呼叫提供;
具有共通特性的功能一般需要較好的平臺移植性,故而由庫函式提供。
庫函式與系統呼叫在功能上相互補充,如程序間通訊資源的管理,程序控制等功能與平臺特性和核心息息相關,必須由系統呼叫來實現。
檔案 I/O操作等各平臺都具有的共通功能一般採用庫函式,也便於跨平臺移植。
某些情況下,庫函式與系統呼叫也有交集,
如 庫函式中的I/O操作的內部實現依然需要呼叫系統的I/O方能實現。