庫函數與系統調用

庫函數調用是語言或應用程序本身的一部分,而系統函數調用是內核提供給應用程序的接口,屬於系統的一部分且其是在操作系統內核發現一個“trap”或中斷後進行的(其中系統調用是軟中斷)。

庫函數 vs 系統調用

** 前者 後者
兼容性 在所有的ANSI C編譯器版本中,C庫函數是相同的 各個操作系統的系統調用是不同的
* 在用戶地址空間執行 在內核地址空間執行
* 屬於過程調用,調用開銷較小 需要在用戶空間和內核上下文環境間切換,開銷較大
規模 在C函數庫libc中有大約300個函數 在UNIX中大約有90個系統調用
etc.


實例說明

Linux下對文件操作有兩種方式:系統調用(system call)和庫函數調用(Library functions)。

發佈了20 篇原創文章 · 獲贊 1 · 訪問量 5365
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章