当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 让你从根本上了解系统函数,简单快速

让你从根本上了解系统函数,简单快速 时间:2018-06-21      来源:未知

我们都知道C语言,C语言提供了通用的函数比如fread fwrite fclose,不论你在windows linux还是其他 操作系统上,都可以使用.这就是平台无关性,所以C语言有很好的移植性.接下来我们思考一个问题,不同的操作系统windows linux,他们的设计肯定不一样的,windows再设计之处肯定不会 考虑linux的设计,linux在设计之处也不会向微软请教.所以问题是为什么都可以使用标准的C函数 ?

这要从操作系统 的系统调用说起.高级的操作系统都分为用户态和内核态,说白了用户态就是执行用户程序的,比如QQ 微信.而内核是 操作系统管理硬件 内存 CPU的,应用程序因为在用户态所以无法访问硬件,这也保证了操作系统的安全性. 但是有时候应用程序需要操作硬件,比如打开摄像头,那怎么办呢.

解决办法就是用户程序请求操作系统打开,操作系统接收请求去打开硬件.所以真实的访问过程不是应用程序直接访问. 应用程序如何请求操作系统呢?这就是系统调用的功能.因为不同的操作系统管理方式 硬件访问方式几乎完全不同,所以不同的操作系统提供了完全不同的系统调用接口.这些接口 又称为系统函数.

比如常见的linux下API:read write close open socket都是系统函数 ,可以完成操作系统的各种功能.windows上API 是不相同的,所以如果你直接使用这些系统函数,写出来的代码不具有移植性.

那怎么办呢?解决方法就是对系统函数封装一层,封装为C库. C库 对外提供统一的接口,不同的操作系统提供不同的C库,但是不同的C库对外提供相同的 API,这也就保证了你基于C库开发的代码在不同的操作系统上具有 很好的移植性.记住,是很好,而不是绝对的.针对一些特殊的功能,我们也是针对操作系统进行处理.

下面一张图来解释他们之间的关系:

系统函数

上一篇:imageview的基本属性介绍,通俗易懂

下一篇:java学习中如何认识反射,业内专家告诉你

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部