库函数和系统调用的区别
前言
這是一對(duì)非常容易混淆的概念。對(duì)于用戶( 應(yīng)用程序開發(fā)者 )來說,并不一定要嚴(yán)格區(qū)分其意義。因?yàn)樵谟脩艨磥?#xff0c;它們都是以C函數(shù)的形式出現(xiàn)的。但了解二者的區(qū)別對(duì)我們掌握整個(gè)計(jì)算機(jī)系統(tǒng)有很大幫助。
區(qū)別
1. 一部分庫函數(shù)實(shí)現(xiàn)需要使用系統(tǒng)調(diào)用( 如 printf 庫函數(shù)需要調(diào)用 write 系統(tǒng)調(diào)用 )
2. 另一部分庫函數(shù)實(shí)現(xiàn)不需要使用系統(tǒng)調(diào)用( 如strcpy 庫函數(shù)不需要使用系統(tǒng)調(diào)用因?yàn)?span style="color:#ff0000;">它不需要使用CPU特權(quán)指令 )
3. 系統(tǒng)調(diào)用一定在內(nèi)核空間執(zhí)行,而庫函數(shù)只有其中的系統(tǒng)調(diào)用部分執(zhí)行時(shí)才會(huì)陷入內(nèi)核( 如果該庫函數(shù)使用了系統(tǒng)調(diào)用的話 )
4. 系統(tǒng)調(diào)用往往提供的是需要使用CPU特權(quán)指令的最核心的服務(wù),而一部分庫函數(shù)則是搭建在系統(tǒng)調(diào)用之上更滿足于具體應(yīng)用的函數(shù)( 另一部分參見2 )
?
轉(zhuǎn)載于:https://www.cnblogs.com/scut-fm/p/3371133.html
總結(jié)
以上是生活随笔為你收集整理的库函数和系统调用的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux内核启动失败,裁剪后monta
- 下一篇: u大侠装服务器系统,U大侠一键U盘装系统