我试图了解当我们在微处理器/微控制器上安装linux时,我们的应用程序编写过程如何变化,即在其中运行的操作系统。据我所知,到目前为止我们看到的应用程序仍然有相同的旧stdio.h和void main。 Linux在后台做什么?我们如何让linux在启动后运行我们的应用程序? Linux在这些程序中做了什么?我的意思是我们仍然可以打开和关闭文件并写入Linux的LCD问题吗?
换句话说,裸机代码与Linux有何不同?我在某处读过我们有一个名为libc的C库。即使我们没有在后台运行linux,我们也不能使用libc吗?
答案 0 :(得分:2)
C区分两种模式“独立”和“托管”:
在独立环境中,你只有非常有限的一部分 可用的标准头文件,大多数标准库可能是 失踪。如果你在“裸露”上运行你的程序就是这种情况 金属“。您的特定平台可能为您提供其他部分 C库,甚至完全不同的东西。
只保证“float.h”, “iso646.h”,“limits.h”,“stdalign.h”,“stdarg.h”,“stdbool.h”, “stddef.h”,“stdint.h”和“stdnoreturn.h”。所以“stdio.h”可能不存在。
在托管环境中,您拥有C库中的所有内容 由C标准保证。在linux下面你应该至少拥有它。