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

发布时间:2021-06-16 14:03:25 作者:小新
来源:亿速云 阅读:277

这篇文章主要介绍了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++函数库调用与系统调用的区别有哪些”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. c++中如何使用stringstream unsigned char转16进制输出
  2. 怎么在python中通过调用c++传递数组

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++

上一篇:Spring Cloud中怎么利用 Hystrix处理异常

下一篇:Antimalware Service Executable的含义和作用是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》