程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 使用系統調用的原因以及其與庫函數(api)的區別

使用系統調用的原因以及其與庫函數(api)的區別

編輯:關於C語言

為什麼需要系統調用?主要有以下兩方面原因。

(1)系統調用可以為用戶空間提供訪問硬件資源的統一接口,以至於應用程序不必去關注具體的硬件訪問操作。比如,讀寫文件時,應用程序不用去管磁盤類型,甚至於不用關心是哪種文件系統。

(2)系統調用可以對系統進行保護,保證系統的穩定和安全。系統調用的存在規定了用戶進程進入內核的具體方式,換句話說,用戶訪問內核的路徑是事先規定好的,只能從規定位置進入內核,而不准許肆意跳入內核。有了這樣的進入內核的統一訪問路徑限制才能保證內核的安全。

(3)系統調用具有更強的功能。

系統調用和庫函數的區別:

   1.系統調用是為了方便應用使用操作系統的接口,而庫函數是為了方便人們編寫應用程序而引出的,比如你自己編寫一個函數其實也可以說就是一個庫函數。

   2.系統調用可以理解為內核提供給我們在用戶態用的接口函數,可以認為是某種內核的庫函數。

   3.操作系統API的主要作用是把操作系統的功能完全展示出來,提供給應用程序,基於該操作系統,與文件、內存、時鐘、網絡、圖形、各種外設等互操作的能力。此外,操作系統API通常還提供許多工具類的功能,比如操縱字符串、各種數據類型、時間日期等。API函數和系統調用之間有著直接的關系,一個API函數可以由一個系統調用實現,也可以通過調用多個系統調用來實現,還可以完全不使用任何系統調用。

   4.系統調用效率不一定比庫函數高

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved