库函数和系统调用的区别

库函数是语言本身的一部分,而系统函数是内核提供给应用程序的接口,属于系统的一部分

函数调用是语言或者应用程序的一部分,而系统调用是操作系统的一部分

用户应用程序访问并使用内核所提供的各种服务的tuji途径即是系统调用,在内核和用户应用程序相交的地方,内核提供了一组系统调用的接口,通过这组接口,应用程序可以访问系统硬件和操作系统资源

  1. 系统调用是为了方便应用使用操作系统的接口,而库函数是为了方便人们编写应用程序而引出的,比如你自己编写一个函数其实也可以说是一个kuha库函数
  2. 系统调用可以理解为内核提供给我们在用户态的接口函数,可以认为是mo某种内核的库函数
  3. read就是库函数,fread就是C标准库函数
函数库调用VS系统调用
函数库调用系统调用
在所用的ANSI   C编译器版本中,C库函数是相同的各个操作系统的系统调用是不同的
他调用库函数中一段程序(或者函数)他调用系统内核的服务
与应用程序相连接是操作系统的一个入口点
在用户地址空间执行在内核地址空间执行
他的运行时间属于用户时间他的运行时间属于内核时间
属于过程调用,开销较小需要在用户空间和内核上下文环境切换,开销较大
典型的C库函数调用:system,malloc典型的系统调用:fork,write

库函数调用通常比行内代码慢,因为他需要付出函数调用的开销。但系统调用比库函数调用还要慢的多,因为他需要把上下文环境切换到内核模式

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值