189 8069 5689

C/C++函数库调用与系统调用的区别有哪些

这篇文章主要介绍了C/C++函数库调用与系统调用的区别有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创新互联专业为企业提供邵武网站建设、邵武做网站、邵武网站设计、邵武网站制作等企业网站建设、网页设计与制作、邵武企业网站模板建站服务,十年邵武做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

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

    系统调用是在操作系统内核发现的一个“trap”或中断后进行的。

函数库调用vs.系统调用

函数库调用系统调用
在所有的ANSI C编译器版本中,C函数库是相同的各个操作系统的系统调用是不同的
它调用函数库中的一个程序它调用系统内核的服务
与用户程序相联系是操作系统的一个进入点
在用户地址空间执行在内核地址空间执行
它的运行时间属于“用户”时间它的运行时间属于“系统”时间
属于过程调用,开销较小需要在切换到内核上下文环境然后切换回来,开销较大
在C函数库libc中有大约300个程序在UNIx中有大约90个系统调用(MS-DOS中少一些)
记录于UNIX OS手册的第三节

记录于UNIX OS手册的第二节

典型的C函数库调用:system,fprintf,malloc典型的系统调用:chidr,fork,write,brk

     库函数调用通常比行内展开的代码慢,因为它需要付出函数调用的开销。但系统调用比库函数调用还要慢很多,因为它需要把上下文环境切换到内核模式。在SPARC工作站上,对一个库函数调用进行记时,结果大约是半微秒。系统调用所需要的时间大约是库函数调用的70倍(35微秒)。纯粹从性能上考虑,你应该尽可能地减少系统调用的数量。但是,许多C函数库中的程序通过系统调用来实现功能。

感谢你能够认真阅读完这篇文章,希望小编分享的“C/C++函数库调用与系统调用的区别有哪些”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


文章名称:C/C++函数库调用与系统调用的区别有哪些
网页URL:http://cdxtjz.cn/article/pscpjg.html

其他资讯