在文章嵌入式Linux软件开发之《Linux应用编程专题-概述》中对(1)哪些是Linux应用编程?(2)为何要学习Linux应用编程?(3)须要具备什么条件能够学习?(4)要把握Linux应用编程什么内容?这种问题做了详尽的解答。从这篇文章开始进即将步入Linux应用编程专题。Linux应用编程涉及到的知识点比较多,也比较广,所以我将详尽介绍概念以及代码来演示怎么进行Linux应用编程。
说起Linux就必须提Linux操作系统。操作系统中涉及到的内容太多了linux服务器配置与管理,并且从Linux应用编程的角度来讲,目前暂时晓得操作系统可以管理硬件以及我们编程为实现某种功能所用的函数大多数都是Linux操作系统提供就可以了。有些东西是先会使用它,之后有时间再去搞明白。提及Linux应用编程就必须提“系统调用”“和“库函数”这两个概念。这篇文章将主要说明这结果概念,理解了这种概念后,可以加深对Linux操作系统以及以及应用编程的理解。
(1)系统调用
系统调用就是Linux操作系统提供给应用编程者的一个“特殊”入口,也就是常常所用的用户API(ApplicationProgrammingInterface应用编程插口)应用编程者可以通过这种入口将应用程序的需求传递到操作系统linux删除命令,操作系统调用内部函数来实现相应的功能,并将结果返回给应用程序,例如打开文件,读写文件,删掉文件等操作。这么就有一个问题,为何应用编程者不能直接访问内核提供的服务呢?留作一个思索题
(2)库函数
库函数简单理解就是对系统调用的封装,并不是内核的入口点。例如一个库函数可能调用一个或则多个内核提供的系统调用来实现相应的功能。
(3)应用编程&系统调用&库函数之间关系
从应用编程者的角度来看linux 应用编程,系统调用和库函数几乎一样,都是以C函数的方式出现,而且提供应用编程所须要的函数,我们只须要调用对应功能的函数就可以。并且从本质上讲,它们两个是不一样的,一个是在应用层linux 应用编程,一个是在操作系统中。
用图展示如下所示:
应用编程者在实现应用功能时既可以使用系统调用也可以使用库函数。这函数在后续的讲解中还会提及。另外通过linux中的man命令也可以关于系统调用和库函数的信息。例如manman可以查看linux中man指南的用法:
可以看打开2对应的是系统调用插口(由内核所提供的功能)3对应的是库函数(由项目库所提供的功能),之后我们在进行linux应用编程时,就可以linux的发行版系统(ubuntu、fedora、centos等)中用man2xxx来查看xxx库函数的详尽信息(包括头文件、函数原型、参数说明以及返回值说明等)man3xxx来查看库函数xxx的具体用法。不过都是英语吆,所以好学好德语还是有帮助的。
后续继续更新...