linux库函数调用和系统调用问题

freeC 2015-08-09 11:08:02
我在网上看到这个东西的解释,里面有一点是这样的,库函数调用其实最终还是调用系统调用,然而又有一点说,系统调用开销比较大,需要在用户控件和内核空间进行切换,比库函数调用开销大很多。
我就纳闷了,库函数调用底层还是用的系统调用,咋系统就比库函数调用开销大呢,不是自相矛盾吗?
求大神释疑
...全文
153 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Darryfei 2015-08-09
  • 打赏
  • 举报
回复
系统调用要从用户态转为核心态运行,需要中断处理,程序堆栈都需要切换,开销比较大。库函数调用相当于子程序调用不需要切换状态。我觉得那里想说的意思应该是系统调用和库函数调用时间的比较,它只是比较库函数调用的时间,不包括库函数实现的时间(库函数实现最终需要用到系统调用完成)。
大熊猫侯佩 2015-08-09
  • 打赏
  • 举报
回复
不是所有的库函数都会调用系统函数,和系统调用比较起来这些函数属于“轻”函数,比如strlen。

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧