【嵌入式学习笔记】什么是UC,操作系统历史介绍,计算机系统分层,环境变量(PATH),错误
操作系统是管理计算机硬件资源和软件资源的一款系统软件。
操作系统简称OS。
操作系统通过驱动程序管理着计算机的硬件资源
通过系统调用和用户进行交互
在很多书籍中,对操作系统层次的描述也有类似下图
PAHT=/home/tarena/Qt5.4.1/5.4/gcc_64/bin:/home/tarena/Qt5.4.1/Tools/QtCieator/bin:/home/tarena/bin:/home/tarena/.local/bin:/usr/local/sbin:/usr/localbin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
该环境变量所记录的是bash进程对命令的检索路径
格式为“.”分割的多个路径。当在bash下输入命令的时候,首先,在第一个路径下找该命令的可执行程序,找到就执行,不再向后找,如果找不到,在第二个路径下找找到就执行,不再向后找;如果找不到,继续下一个路径。如果到最后一个路径都找不到,就提示该命令不能找到的错误。
如果想要执行自己的程序,而又不想添加“./”,该如何做呢?
./a.out --> a.out
在PATH环境变量中,添加当前路径,再执行程序时,即可省略”./"。
PATH=&PATH:
如果没有特殊操作,对环境变量的设置仅对当前shell进程有效,开启新的终端,之前的操作不会被保留。
在家目录下有名为.bashrc的脚本文件,每次bash进程启动前,件的内容。如果希望环境变量的设置对每个bash进程都有效,可以将环境变量的设置写在该脚本文件中。
执行 source ~/.bashrc 命令,可以使文件立即对当前bash生效。
每个进程都有一张独立的环境变量表,其中的每个条目都是一个形如”键=值”形式的环境变量。
所谓环境变量表就是一个以NULL指针结束的字符指针数组,其中的每个元素都是一个字符指针,指向一个以空字符结尾的字符串,该字符串就是形如”键=值”形式的环境变量。该指针数组的地址保存在全局变量environ中
通过全局环境变量表指针environ可以访问所有环境变量
extern char** environ;
char** pp;
for (pp = environ;*pp; ++pp){
printf ("%s\n",*pp);
}
通过main函数的第三个参数也可以访问到进程的环境变量,main函数的第三个参数就是环境变量表的起始地址
int main (int argc, char* argv[], char* envp[]) {
char** pp;
for(pp = envp;*pp; ++pp){
printf("%s\n",*pp);
}
reutrn 0;
}
针对因为运行环境、人为操作等原因会导致程序执行时发生错误,那么如何获取具体的错误原因呢?
我们一般会采取下列几种方式
通过错误号了解具体的错误原因
通过strerror0函数了解错误原因
#include<string.h>
char* strerror(int errnum)
功能: 将整数形式的错误号转换为有意义的字符串
参数: errnum 错误号
返回值: 返回与参数错误号对应的描述字符串
通过perror()函数了解错误原因