在文章嵌入式Linux软件开发之《Linux应用编程专题-概述》中对(1)什么是Linux应用编程?(2)为什么要学习Linux应用编程?(3)需要具备哪些条件才能学习?(4)要掌握Linux应用编程哪些内容?这些问题做了详细的解答。从这篇文章开始进正式进入Linux应用编程专题。Linux应用编程涉及到的知识点比较多,也比较广,所以我将详细介绍概念以及代码来演示如何进行Linux应用编程。

说起Linux就必须提Linux操作系统。操作系统中涉及到的内容太多了,但是从Linux应用编程的角度来讲,目前暂时知道操作系统可以管理硬件以及我们编程为实现某种功能所用的函数大多数都是Linux操作系统提供就可以了。有些东西是先会使用它,然后有时间再去搞明白。提到Linux应用编程就必须提“系统调用”“和“库函数”这两个概念。这篇文章将主要说明这结果概念,理解了这些概念后,可以加深对Linux操作系统以及以及应用编程的理解。

(1)系统调用

系统调用就是Linux操作系统提供给应用编程者的一个“特殊”入口,也就是经常所用的用户API(Application Programming Interface应用编程接口)应用编程者可以通过这些入口将应用程序的需求传递到操作系统,操作系统调用内部函数来实现相应的功能,并将结果返回给应用程序,比如打开文件,读写文件,删除文件等操作。那么就有一个问题,为什么应用编程者不能直接访问内核提供的服务呢?留作一个思考题

(2)库函数

库函数简单理解就是对系统调用的封装,并不是内核的入口点。比如一个库函数可能调用一个或者多个内核提供的系统调用来实现相应的功能。

(3)应用编程&系统调用&库函数之间关系

从应用编程者的角度来看,系统调用和库函数几乎一样,都是以C函数的形式出现,并且提供应用编程所需要的函数,我们只需要调用对应功能的函数就可以。但是从本质上讲,它们两个是不一样的,一个是在应用层,一个是在操作系统中。

用图展示如下所示:

应用编程者在实现应用功能时既可以使用系统调用也可以使用库函数。这函数在后续的讲解中都会提到。另外通过linux中的man命令也可以关于系统调用和库函数的信息。比如man man 可以查看linux 中man手册的用法:

可以看打开 2 对应的是系统调用接口(由内核所提供的功能)3对应的是库函数(由项目库所提供的功能),以后我们在进行linux应用编程时,就可以linux的发行版系统(ubuntu、fedora、centos等)中用man 2 xxx来查看xxx库函数的详细信息(包括头文件、函数原型、参数说明以及返回值说明等) man 3 xxx来查看库函数xxx的具体用法。不过都是英文吆,所以好学好英语还是有帮助的。

后续继续更新...

更多精彩内容可以关注此头条号:嵌入式软硬件开发 喜欢的话大家可以“评论”,“转发”、“点赞”或者“收藏”,感谢大家。相互交流,共同成长。

库函数手册_Linux应用编程(1)系统调用库函数 确定真懂?相关推荐

  1. STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结

    摘自:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结 作者:自信且爱笑' 发布时间: 2021-04-28 21:17:40 网址:https://blog. ...

  2. Linux系统编程——Linux系统调用

    系统调用概述 系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组"特殊"接口.用户程序可以通过这组"特殊"接口来获得操作系统内核提供的服务,比如用户可以 ...

  3. 什么是库函数、寄存器?如何新建一个库函数的工程模板?(第四天,有检讨)

    PS!!!以后相关文件从例程中直接复制就好了,以下的基本是解释每个文件的作用的,对大佬没啥用(2019.8.20) 哈!今天终于进入主题了,以后我也是会建新的工程模板的人了(再也不用当只会嘴上说心里慌 ...

  4. 全国青少年编程等级考试python一级真题2022年3月(含题库答题软件账号)

    对青少年编程等级考试Python真题答题考试系统关注的请点击 全国青少年编程等级考试python一级真题2020年12月(含题库答题软件账号)_程序猿下山的博客-CSDN博客_python编程一级试卷 ...

  5. scratch飞翔的小猫 电子学会图形化编程scratch等级考试一级真题和答案解析2022年3月

    目录 scratch飞翔的小猫 一.题目要求 1.准备工作 2.功能实现 二.案例分析 1.角色分析 2.背景分析 3.前期准备 三.实现流程 1.案例分析 2.流程图绘制 四.程序编写 五.考点分析 ...

  6. 儿童机器人编程课程有用吗?真能开发编程思维吗?

    机器人编程学科交叉性非常强,在传统的学科教育中,每个细分的学科都是由专门的老师单独传授.机器人编程则是把数学.物理.美学等学科所涉及的知识综合运用,通过编程赋予运行逻辑并通过机器人这个介质来表现. 儿 ...

  7. 历届蓝桥杯青少年Scratch编程选拔赛 STEMA评测比赛真题解析【持续更新 已更新至49题】

    历届蓝桥杯scratch选拔赛真题 第十届.十一届.十二届.十三届蓝桥杯选拔赛STEMA比赛真题解析 选拔赛真题49-购物程序 [蓝桥杯选拔赛真题48]Scratch购物程序 少儿编程scratch蓝 ...

  8. 历届蓝桥杯青少年编程选拔赛 科技素养题真题讲解 STEMA评测比赛真题解析【持续更新 已更新至18套】

    信息素养(科技素养)的重要性 教育部等多个部门多次发文强调中小学生信息素养的重要性,而且已经纳入到新课标里面:要提升学生信息素养.各地要指导和推动中小学按照国家课程方案和课程标准开齐开足开好信息技术课 ...

  9. execve系统调用_Linux系统编程——进程替换:exec 函数族

    在 Windows 平台下,我们可以通过双击运行可执行程序,让这个可执行程序成为一个进程:而在 Linux 平台,我们可以通过 ./ 运行,让一个可执行程序成为一个进程. 但是,如果我们本来就运行着一 ...

最新文章

  1. 线程间操作无效: 从不是创建控件的线程访问它
  2. 使用Heroku部署Rails应用
  3. Android Vector笔记
  4. Spring的依赖注入和管理Bean
  5. 关于c++中运算符重载
  6. BZOJ1795 : [Ioi2008]Pyramid Base 金字塔地基
  7. 大数据项目开发案例_大数据分析技术——项目案例1(猫眼电影数据分析上)...
  8. 【HNOI】 lct tree-dp
  9. iPhone开发知识和项目
  10. 详解之-js闭包的用途
  11. 计算机cmd复制粘贴指令,win7系统使用CMD命令复制和删除文件夹的方法
  12. 计算机cpu好坏之分,学查看CPU天梯图,正确判断CPU性能好坏
  13. 台式机计算机无线开关在哪,电脑无线wifi开关在哪里打开
  14. 九宫格构图学习[1]
  15. iOS相册、拍照、iCloud使用
  16. Nexus 搭建私有镜像仓库
  17. GD32F103基础教程—GPIO输出实验(五)
  18. mdx格式的词典用什么软件打开_抄作业了!手把手教你安装欧路词典(ios系统为例)...
  19. IntelliJ IDEA 之 Spring Boot (五) Freemarker 模板引擎渲染 Web 试图
  20. STL源码剖析-第一章STL概论与版本简介

热门文章

  1. 团队任务3 每日立会
  2. [BZOJ 3260] 跳
  3. 【原创】基于日志增量,统计qps,并基于ip排序
  4. linux内存占用查看
  5. wamp新建虚拟目录无法运行的解决方法
  6. Solr相关概念详解:SolrRequestHandler
  7. android surface编程,Android编程之SurfaceView实例详解
  8. linux kernel基本构成的内容有下列哪些项_Linux内核线程kernel thread详解
  9. android 坐标布局变形,Android:scrollBy实现view随意移动并显示坐标
  10. mac r 导出csv文件_R在Max OS进行导入和导出xlsx文件