当前位置: 首页 > news >正文

【嵌入式学习笔记-01】什么是UC,操作系统历史介绍,计算机系统分层,环境变量(PATH),错误

【嵌入式学习笔记】什么是UC,操作系统历史介绍,计算机系统分层,环境变量(PATH),错误

文章目录

  • 什么是UC?
  • 计算机系统分层
    • 什么是操作系统?
  • 环境变量
    • 什么是环境变量?
    • 环境变量的添加?
    • 常见环境变量
    • 环境变量表
  • 错误处理

什么是UC?

U是指unix操作系统。Unix操作系统是使用C语言实现的系统级软件。
UC是指使用C语言在Unix操作系统上的用户编程。unix系统向用户提供了大量的接口。用户通过系统提供的接口,使用操作系统提供的服务

计算机系统分层

什么是操作系统?

  • 操作系统是管理计算机硬件资源和软件资源的一款系统软件。

  • 操作系统简称OS。

image-20240101190847480

  • 操作系统通过驱动程序管理着计算机的硬件资源

  • 通过系统调用和用户进行交互

  • 在很多书籍中,对操作系统层次的描述也有类似下图

    image-20240101191107754

环境变量

什么是环境变量?

  • bash用一个叫做环境变量的特性来存储有关工作环境的信息。
  • 进程可以通过环境变量访问计算机的资源。
  • 在终端下输入env命令,可以查看环境变量列表。
  • 通过echo $name 可以查看某个环境变量的值。

环境变量的添加?

  • 在终端窗口中输入 键=值 形式的内容,回车。
  • 比如 FOOD=guobaorou,表示在当前bash中,添加名为 FOOD,值为 guobaorou的环境变量。
  • 如果环境变量FOOD存在,则更改其值。
  • 强调,在添加环境变量时,登号左右两侧不要添加空格。

常见环境变量

  • PATH环境变量

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生效。

环境变量表

  • 每个进程都有一张独立的环境变量表,其中的每个条目都是一个形如”键=值”形式的环境变量。

    image-20240101192445546

  • 所谓环境变量表就是一个以NULL指针结束的字符指针数组,其中的每个元素都是一个字符指针,指向一个以空字符结尾的字符串,该字符串就是形如”键=值”形式的环境变量。该指针数组的地址保存在全局变量environ中

image-20240101192700425

  • 通过全局环境变量表指针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;
    }
    

错误处理

  • 针对因为运行环境、人为操作等原因会导致程序执行时发生错误,那么如何获取具体的错误原因呢?

  • 我们一般会采取下列几种方式

  • 通过错误号了解具体的错误原因

    • 系统于定义的整数类型全局变量errno中存储了最近一次系统调用的错误编号
    • 知道了错误编号,也就知道了错误原因
    • 头文件/usr/include/errno.h中包含了对errno全局变量的外部声明
    • 在头文件/usr/include/asm-generic/errno-bashe.h中包含各种错误号的宏定义
  • 通过strerror0函数了解错误原因

    • #include<string.h>

    • char* strerror(int errnum)

    • 功能: 将整数形式的错误号转换为有意义的字符串

    • 参数: errnum 错误号

    • 返回值: 返回与参数错误号对应的描述字符串

  • 通过perror()函数了解错误原因

    • #include <stdio.h>
    • void perror(char const* tag)
    • 功能: 在标准出错设备上打印最近一次函数调用的错误信息
    • 参数: tag 为用户自己制定的提示内容,输出时,会自动在该提示内容和错误信息之间添加冒号进行分隔

相关文章:

【嵌入式学习笔记-01】什么是UC,操作系统历史介绍,计算机系统分层,环境变量(PATH),错误

【嵌入式学习笔记】什么是UC&#xff0c;操作系统历史介绍&#xff0c;计算机系统分层&#xff0c;环境变量&#xff08;PATH&#xff09;&#xff0c;错误 文章目录 什么是UC?计算机系统分层什么是操作系统&#xff1f; 环境变量什么是环境变量&#xff1f;环境变量的添加&am…...

【动态规划】LeetCode-10. 正则表达式匹配

10. 正则表达式匹配。 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c;是要涵盖 整个 字符串 s的&#xff0c;而不是部分字符串。 …...

lenovo联想拯救者8.8英寸掌上游戏机Legion Go 8APU1(83E1)原装出厂Windows11预装系统

链接&#xff1a;https://pan.baidu.com/s/1d586XWXcAWVxlLyV2Oku7Q?pwdd74t 提取码&#xff1a;d74t 系统自带所有驱动、出厂主题壁纸、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文件格式&#xff1a;ISO 文件大小&#xff1a;…...

经典目标检测YOLO系列(一)复现YOLOV1(4)VOC2007数据集的读取及预处理

经典目标检测YOLO系列(一)复现YOLOV1(4)VOC2007数据集的读取及预处理 之前&#xff0c;我们依据《YOLO目标检测》(ISBN:9787115627094)一书&#xff0c;提出了新的YOLOV1架构&#xff0c;并解决前向推理过程中的两个问题&#xff0c;继续按照此书进行YOLOV1的复现。 经典目标检…...

Android Studio xml布局代码补全功能失效问题

这里写目录标题 前言&#xff1a;问题描述原因分析&#xff1a;解决方案&#xff1a;1.更新 Android Studio 版本2.原版本解决XML补全失效 小结 前言&#xff1a; 在开发过程中&#xff0c;你可能遇到很多奇奇怪怪的问题。Android Studio 编译器出现问题也是常有的事情&#x…...

算法每日一题:队列中可以看到的人数 | 单调栈

大家好&#xff0c;我是星恒 今天是一道困难题&#xff0c;他的题解比较好理解&#xff0c;但是不好想出来&#xff0c;接下来就让我带大家来捋一捋这道题的思路&#xff0c;以及他有什么特征 题目&#xff1a;leetcode 1944有 n 个人排成一个队列&#xff0c;从左到右 编号为 …...

报表控件Stimulsoft 2023回顾:都做了哪些产品的改变?

在2023年过去一年中&#xff0c;报表控件Stimulsoft 针各类控件都做了重大改变&#xff0c;其中新增了某些产品、同时加强了很多产品的性能和UI设计&#xff0c;更加符合开发者需求&#xff0c;下面就跟随小编一起来回顾&#xff0c;具体都有哪些↓↓↓ Stimulsoft Ultimate &…...

Mybatis缓存实现方式

文章目录 装饰器模式Cache 接口及核心实现Cache 接口装饰器1. BlockingCache2. FifoCache3. LruCache4. SoftCache5. WeakCache 小结 缓存是优化数据库性能的常用手段之一&#xff0c;我们在实践中经常使用的是 Memcached、Redis 等外部缓存组件&#xff0c;很多持久化框架提供…...

C#用StringBuilder高效处理字符串

目录 一、背景 二、使用StringBuilder便捷、高效地操作字符串 三、实例 1.源码 2.生成效果 四、实例中知识点 1.StringBuilder 构造函数 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;重载 &#xff08;3&#xff09;StringBuilder() &#xff08;4&…...

python开发案例教程-清华大学出版社(张基温)答案(4.2)

目录 练习 4.2 1. 代码分析题 2. 程序设计题 练习 4.2 1. 代码分析题 阅读下面的代码&#xff0c;给出输出结果。 &#xff08;1&#xff09; class A:def __init__(self,a,b,c):self.xabca A(3,5,7);b getattr(a,x);setattr(a,x,b3);print(a.x)18 &#xff08;2&…...

【MATLAB】【数字信号处理】线性卷积和抽样定理

已知有限长序列&#xff1a;xk1,2,1,1,0,-3, hk[1,-1,1] , 计算离散卷积和ykxk*h(k) 。 程序如下&#xff1a; function [t,x] My_conv(x1,x2,t1,t2,dt) %文件名与函数名对应 %自写的卷积函数 x conv(x1,x2)*dt; t0 t1(1) t2(1); L length(x1) length(x2)-2; t t0:dt…...

什么是 MVVM ?

课堂笔记 什么是 MVVM &#xff1f; MVVM 是一种架构模式&#xff0c;它最初是由微软的两位工程师在 2005 年的时候所提出的。 Model&#xff1a;Model代表的是你的数据View&#xff1a;视图&#xff0c;直接和用户打交道的ViewModel&#xff1a;ViewModel 是 View 和 Model…...

Redis(一)

1、redis Redis是一个完全开源免费的高性能&#xff08;NOSQL&#xff09;的key-value数据库。它遵守BSD协议&#xff0c;使用ANSI C语言编写&#xff0c;并支持网络和持久化。Redis拥有极高的性能&#xff0c;每秒可以进行11万次的读取操作和8.1万次的写入操作。它支持丰富的数…...

自动驾驶预测-决策-规划-控制学习(1):自动驾驶框架、硬件、软件概述

文章目录 前言&#xff1a;无人驾驶分级一、不同level的无人驾驶实例分析1.L2级别2.L3级别3.L4级别①如何在减少成本的情况下&#xff0c;实现类似全方位高精度的感知呢&#xff1f;②路侧终归是辅助&#xff0c;主车的智能才是重中之重&#xff1a;融合深度学习 二、无人驾驶的…...

SSM建材商城网站----计算机毕业设计

项目介绍 本项目分为前后台&#xff0c;前台为普通用户登录&#xff0c;后台为管理员登录&#xff1b; 管理员角色包含以下功能&#xff1a; 管理员登录,管理员管理,注册用户管理,新闻公告管理,建材类型管理,配货点管理,建材商品管理,建材订单管理,建材评价管理等功能。 用…...

js逆向第9例:猿人学第2题-js混淆-动态cookie1

题目2:提取全部5页发布日热度的值,计算所有值的加和,并提交答案 (感谢蔡老板为本题提供混淆方案) 既然题目已经给出了cookie问题,那就从cookie入手,控制台找到数据请求地址 可以看到如下加密字符串m类似md5,后面跟着时间戳 m=45cc41dcdb15159ebb50564635f8e362|1704301…...

[论文分享]TimesURL:通用时间序列表示学习的自监督对比学习

论文题目&#xff1a;TimesURL: Self-supervised Contrastive Learning for Universal Time Series Representation Learning 论文地址&#xff1a;https://arxiv.org/abs/2312.15709 代码地址&#xff1a;暂无 摘要 学习适用于各种下游任务的通用时间序列表示具有挑战性&…...

解决sublime中文符号乱码问题

效果图 原来 后来 问题不是出自encode文件编码&#xff0c;而是win10的字体问题。 解决方法 配置&#xff1a; { "font_face":"Microsoft Yahei", "dpi_scale": 1.0 } 参考自 Sublime 输入中文显示方框问号乱码_sublime中文问号-CSDN博…...

厚积薄发11年,鸿蒙究竟有多可怕

​12月20日中国工程院等权威单位发布《2023年全球十大工程成就》。本次发布的2023全球十大工程成就包括“鸿蒙操作系统”在内。入围的“全球十大工程成就”&#xff0c;主要指过去五年由世界各国工程科技工作者合作或单独完成且实践验证有效的&#xff0c;并且已经产生全球影响…...

pyDAL一个python的ORM(4) pyDAL查询操作

1 、简单查询 rows db(db.person.dept marketing).select(db.person.id, db.person.name, db.person.dept) rows db(db.person.dept marketing).select() rows db(db.person.dept marketing).select(db.person.ALL) rows db().select(db.person.ALL) / db(db.person).se…...

终极fabio配置验证指南:避免生产环境错误的10个实用技巧

终极fabio配置验证指南&#xff1a;避免生产环境错误的10个实用技巧 【免费下载链接】fabio Consul Load-Balancing made simple 项目地址: https://gitcode.com/gh_mirrors/fa/fabio fabio是一个快速、现代的零配置负载均衡HTTP(S)和TCP路由器&#xff0c;专为Consul管…...

小白也能玩转DeepSeek-R1:Ollama一键部署推理模型实战

小白也能玩转DeepSeek-R1&#xff1a;Ollama一键部署推理模型实战 还在为复杂的AI模型部署而烦恼吗&#xff1f;DeepSeek-R1-Distill-Llama-8B作为一款强大的文本生成模型&#xff0c;现在通过Ollama平台可以轻松实现一键部署。本文将带你从零开始&#xff0c;只需3个简单步骤…...

从拒稿到录用:一个生物医学工程研究生的UMB投稿实战复盘(含完整时间线与避坑点)

从拒稿到录用&#xff1a;一个生物医学工程研究生的UMB投稿实战复盘 第一次收到CIBM编辑部的秒拒邮件时&#xff0c;我正在实验室熬夜跑数据。屏幕上的"reject"字样像一盆冷水浇下来——这个被我寄予厚望的期刊&#xff0c;从投稿到拒稿只用了17天。作为生物医学工程…...

小白也能玩转的AI语音合成:超级千问语音世界快速体验报告

小白也能玩转的AI语音合成&#xff1a;超级千问语音世界快速体验报告 1. 初识超级千问语音世界 第一次打开超级千问语音世界&#xff0c;我仿佛穿越回了童年玩红白机的时代。复古的像素风界面、跳跃的蘑菇按钮、会移动的小乌龟&#xff0c;这哪里是AI工具&#xff0c;分明是个…...

LeetCode 70. Climbing Stairs 题解

LeetCode 70. Climbing Stairs 题解 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼…...

深度图还能这样用?Metashape导出数据在Unity3D/B3DM格式转换中的妙用

深度图跨界应用&#xff1a;从Metashape到Unity3D的B3DM格式转换实战指南 当摄影测量遇上游戏开发&#xff0c;深度图的价值远不止于三维重建。在Metashape中生成的深度图数据&#xff0c;经过巧妙转换后能在Unity3D中实现令人惊艳的效果。本文将带你探索这条从专业建模软件到…...

FastAPI安全防线:OAuth2 + JWT 实现无状态认证的完整流程

更多内容请见: 《Python Web项目集锦》 - 专栏介绍和目录 在现代Web应用开发中,安全认证是构建可靠API的基石。FastAPI通过其强大的安全组件,为开发者提供了实现安全、可扩展认证系统的工具。本文将深入剖析OAuth2与JWT在FastAPI中的整合实现,揭示无状态认证的完整流程,提…...

mPLUG视觉问答效果展示:交通标志识别、菜单文字理解、图表数据问答

mPLUG视觉问答效果展示&#xff1a;交通标志识别、菜单文字理解、图表数据问答 获取更多AI镜像 想探索更多AI镜像和应用场景&#xff1f;访问 CSDN星图镜像广场&#xff0c;提供丰富的预置镜像&#xff0c;覆盖大模型推理、图像生成、视频生成、模型微调等多个领域&#xff0c;…...

从‘折半查找’到‘二分答案’:LeetCode实战中如何活用这个O(log n)的经典思想

从二分查找到二分答案&#xff1a;LeetCode实战中的O(log n)思想进阶指南 在算法学习与面试准备过程中&#xff0c;二分查找&#xff08;Binary Search&#xff09;往往是第一个让初学者感受到算法效率之美的经典案例。这个看似简单的"折半查找"思想&#xff0c;却能…...

Nano-Banana效果展示:多款产品高清拆解图生成作品集

Nano-Banana效果展示&#xff1a;多款产品高清拆解图生成作品集 1. 专业级拆解效果惊艳呈现 想象一下&#xff0c;只需简单输入文字描述&#xff0c;就能获得堪比专业设计师制作的产品爆炸图。Nano-Banana产品拆解引擎让这一想象成为现实&#xff0c;它专为产品拆解、平铺展示…...