2017年1月17日学习总结----系统调用和库函数
来源:互联网 发布:香港代购mac口红多少钱 编辑:程序博客网 时间:2024/04/30 20:37
声明:本文转自http://blog.csdn.net/u011456940/article/details/50472149
一. 概念
系统调用(英语:system call),指运行在用户空间的应用程序向操作系统内核请求某些服务的调用过程。 系统调用提供了用户程序与操作系统之间的接口。一般来说,系统调用都在内核态执行。由于系统调用不考虑平台差异性,由内核直接提供,因而移植性较差(几乎无移植性)。
库函数(library function),是由用户或组织自己开发的,具有一定功能的函数集合,一般具有较好平台移植性,通过库文件(静态库或动态库)向程序员提供功能性调用。程序员无需关心平台差异,由库来屏蔽平台差异性。
二,区别
调用※函数库调用 VS 系统
函数库调用
系统调用
平台移植性好
依赖于内核,不保证移植性
调用函数库中的一段程序(或函数)
调用系统内核的服务
一个普通功能函数的调用
是操作系统的一个入口点
在用户空间执行
在内核空间执行
它的运行时间属于“用户时间”
它的运行时间属于“系统”时间
属于过程调用,调用开销较小
在用户空间和内核上下文环境间切换,开销较大
库函数数量较多
UNIX中大约有90个系统调用,较少
典型的C函数库调用:printf scanf malloc
典型的系统调用:fork open write
三. 联系
一般而言,跟内核功能与操作系统特性紧密相关的服务,由系统调用提供;
具有共通特性的功能一般需要较好的平台移植性,故而由库函数提供。
库函数与系统调用在功能上相互补充,如进程间通信资源的管理,进程控制等功能与平台特性和内核息息相关,必须由系统调用来实现。
文件 I/O操作等各平台都具有的共通功能一般采用库函数,也便于跨平台移植。
某些情况下,库函数与系统调用也有交集,
如 库函数中的I/O操作的内部实现依然需要调用系统的I/O方能实现。
- 2017年1月17日学习总结----系统调用和库函数
- 总结系统调用和库函数调用区别
- 2017年1月22日学习总结----TCP和UDP的区别
- 系统调用和库函数
- 库函数和系统调用
- 系统调用和库函数
- 库函数和系统调用
- 库函数和系统调用
- 系统调用和库函数
- 系统调用和库函数
- 系统调用和库函数
- 系统调用和库函数
- 库函数和系统调用
- 库函数和系统调用
- 库函数调用和系统调用
- 库函数调用和系统调用
- windows系统上的onmousemove和click事件总结(2017年10月14日)
- 2017年12月17日总结
- 开博客,庆祝!(蜂鸣器马里奥)(测试)
- github安装失败
- Firebug: 已拦截跨源请求:同源策略禁止读取位于XXX的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-
- 素数判定
- 17 - 04 - 18 Web安全(14)
- 2017年1月17日学习总结----系统调用和库函数
- 路径问题
- 快速失败Vs安全失败(Java迭代器附示例)
- 澄清P问题、NP问题、NPC问题的概念
- HDU5303 Delicious Apples(贪心)
- JDBC日期和新的JDK8 日期API转换问题
- 在MVC中使用表达式语言
- another port dns
- 重新学习java-第一天(1)