应用编程接口(API)

(1)名称:即API(Application Program Interface),直译为“应用编程接口”,直白理解的就是编写应用程序时要调用的接口。
(2)API与函数接口
API就是各种函数接口,应用程序通过这些函数接口来调用函数,以获取函数提供的功能。
图:
在这里插入图片描述
这是我们自己写的应用程序。

(3)原则上讲,一切可供编程调用的函数接口都是可以被称为API
我们自己所写函数提供的接口,也算是API,只是我们通常说API时,一般指的都是库和OS所提供的函数接口。

编程接口的分类

按照我们前面的介绍,API大致分为两种,一种是由各种库函数直接提供的API,另一种是直接由OS所提供的API。
图:
在这里插入图片描述

OS直接提供的API
直接由OS函数提供的API,
图:
在这里插入图片描述
库函数提供的API
(1)有库函数提供的API分为两种情况
1)第一种:直接由库函数提供,库函数没有调用OS的API
2)第二种,库函数会先调用OS的API,进一步封装并作功能扩展后,后再以库API的形式提供给上层调用,
图:
在这里插入图片描述

(2)提供库函数几种情况
1)情况1:由开源组织提供,比如GNU开源组织提供的c标准库
2)情况2:公司根据自己会封装库,封装库时
3)情况3:自己根据需求封装库,不过这种情况很少

总结
图:
在这里插入图片描述

调用OS的系统API,可以获取OS提供的哪些服务

(1)调用OS的API
对于现在计算能力稍强的计算机来说,都会运行有OS,前面也介绍过,调用OS API的情况有两种,
1)第一种:直接调用
2)第二种:间接调用,先调用库函数,然后再由库函数调用系统函数。
UCOS

(2)调用OS API的目的

问题1:为什么要调用库函数 printf
问题2:为什么要调用OS提供的系统函数
1)程序通过OS API调用系统函数,以获取OS提供的服务。
2)程序运行起来后就变成了进程,所以也可以说成是进程在调用系统函数,然后OS向进程提供相应的服务。

(3)通过调用各类相关的OS API,OS会给进程(应用程序)提供哪些基本的服务呢?
1)操作文件的服务,分为两种 Linux
(a)访问文件数据 read write API
(b)访问文件的属性信息 stat API

2)查看OS系统数据的服务,比如系统提供的时间、内存使用情况等等
3)进程间通信的服务
前面就说,每个进程运行在独立的虚拟内存中,它们之间通信很困难,因此需要OS提供的专门的API,获取进程间通信的服务,实现进程间的通信。
4)网络通信服务:调用OS的TCP/IP协议栈的socket接口,实现网络通信

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐