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

day24:零基础学嵌入式之系统编程

一、系统编程包含

  • 文件的读写、和常用操作,
  • 操作系统已经进入多任务时代,在同一时刻同时运行多个程序。

二、标准io;stdio.h(以计算机为中心)

1.头文件路径:/usr/include/stdio.h

so动态库:stdio.c=>libc.so:gcc的前三步,so文件已经是二进制,也叫c库文件,调用系统级别的头文件,传入的是so动态库,路径在:usr/lib

  • ldd  ./a.out:

2.man手册

        (1)man  man  ==>所有man的帮助
                  man  xxx == man 1 xxx ===>查看当前xxx命令
                  man 2 xxx  ===>查看xxx对应的系统调用函数
                  man 3 xxx  ===》查看xxx对应的标准库函数

        (2)总路径:/usr/share/man

三、文件

1.基本信息

(1)作用:linux中一切都是文件。文件用来存储数据(数据,指令);

(2)文件io,系统调用,底层软件
        1)文件内容的分类, 文本文件,二进制文件     
                struct FILE
                {
                }
                流:   FILE*
                数据从文件当中流入和流出所体现出来的字节

        2)流的分类:

                二进制流: 2001 \n;二进制数据的流
                文本流:ASCII码数据的流 \n \t 
FILE 结构定义的对象 FILE * 称之为流对象,也叫文件流指针。
流对象 ===》头 《===数据====》尾

2.步骤   “打开读写关闭”

  • 打开文件FILE
  • io操作,读写操作
  • 关闭文件

3.文件io,系统调用,底层软件
(1)文件内容的分类, 文本文件,二进制文件     
        struct FILE
        {
        }
        流:   FILE*
        数据从文件当中流入和流出所体现出来的字节

(2)流的分类:

        1)二进制流: 2001 \n;二进制数据的流
        2)文本流:ASCII码数据的流 \n \t 
FILE 结构定义的对象 FILE * 称之为流对象,也叫文件流指针。
流对象 ===》头 《===数据====》尾

3.FILE* = fopen:

FILE是文件流指针,描述文件相关信息,打开之后,只关心文件的内容,FILE结构体内部有个成员指向文件的文本;

4. 读写操作相关

fgetc/fputc,,,,,,一个字符,
fgetc(int c ,FILE*strem);
fgets/fputs....,,一次一行(最常用)
fread/fwrite....自定义大小,,二进制

5.fopen函数:FILE *fopen(const char *path, const char *mode);

(1)功能:打开一个文件并建立一个流

(2)参数解释

        1)path:

  • 要打开文件的路径

        2)mode:

  • r 只读:文件不存在报错,文件存在则只读打开(要在文件已存在的情况操作)
  • r+ 读写:文件不存在报错,文件存在则读写打开(要在文件已存在的情况操作)

  • w 只写:文件不存在,则创建文件存在则清0只写打开

  • w+ 写读:文件不存在则创建,文件存在则清0写读打开

  • a 追加可写:文件不存在则创建,文件存在则追加只写打开

  • a+ 追加读写:文件不存在则创建,文件存在则追加读写打开

  • 返回值:成功返回建立的文件流指针,失败返回NULL

6.fputc函数:int fputc(int c, FILE *stream);


(1)功能 : 向流中写入一个字符
(2)参数 :
        1)c:要写入的字符
        2)stream:文件流指针
        3)返回值 : 成功返回写入的字符ASCII码值,失败返回EOF(end o)

#include <stdio.h>int	main(int argc, char **argv)
{FILE * fp = fopen("01.txt", "w");if(NULL==fp){fprintf(stderr, "FILE fopen error");return 1;}fputc('h', fp);fputc('e', fp);fputc('l', fp);fputc('l', fp);fputc('o', fp);fputs("hello", fp);fputc('\n', fp);fclose(fp);return 0;
}

7.fgetc:int fgetc(FILE *stream)

(1)功能:从流中读取一个字符
(2)参数:stream:文件流指针
(3)返回值:成功返回读到字符的ASCII码值,读到文件末尾返回EOF,失败返回EOF 

#include <stdio.h>
int	main(int argc, char **argv)
{FILE* fp =fopen("01.txt", "r");if(NULL==fp){fprintf(stderr, "FILE fopen error");return 1;}while(1){int c  = fgetc(fp);if(EOF == c){break;}printf("%c ",c);}fclose(fp);return 0;
}
  • vimdiff 文件名1 文件名2(文本对照工具)

8.fgets:fgets(buff, sizeof(buff), stdin);

(1)功能:从stream流对象关联的文件中获取size大小字节的文本数据并存储到s对应的本地内存(栈区数组,堆区内存)
(2)参数: s 要存储数据的本地内存; size 要获取的数据长度,单位字节; stream 要获取的目标文件流对象,可以是stdin ,程序会阻塞等待,如果是普通文件fp 则指向文件第一行数据
(3)返回值:成功 返回指向有效数据的首地址,一般等于s的地址,失败 或者 文件末尾 NULL;

#include <stdio.h>
int	main(int argc, char **argv)
{if(argc < 2){printf("user:./a.out file");return 1;}FILE *fp = fopen(argv[1], "r");if(NULL==fp){fprintf(stderr, "FILE fopen error");return 1;}while(1){char buf[1024];if(NULL == fgets(buf, sizeof(buf), fp)){break;}printf("%s",buf);}fclose(fp);return 0;
}

(3)gets和fgets的区别:
        1)gets是危险的,因为没有规范读到数据的上限
        2)gets会去掉从终端读入的\n字符
        3)fgets会读到n个数据,如果n个 数据中存在\n字符则立即停止当前的读取操作
        4)fgets不会去掉从流中读到的\n字符

注意:读到的是size -1个

9.fputs:int fputc(int c, FILE *stream);

(1)功能:向流中写入一个字符
(2)参数:
        1)c:要写入的字符
        2)stream:文件流指针
        3)返回值:成功返回写入的字符ASCII码值,失败返回EOF

#include <stdio.h>
int	main(int argc, char **argv)
{FILE *fp = fopen("05.txt", "w");char buf[][100] ={"hello","world","china"};for (int i = 0; i < 3; i++){fputs(buf[i], fp);} fclose(fp);return 0;
}

10.练习

(1)cp

#include <stdio.h>
int	main(int argc, char **argv)
{FILE *src = fopen(argv[1], "r");FILE *dest = fopen(argv[2],"w");if(NULL==src){fprintf(stderr, "FILE fopen error");return 1;}if(NULL==dest){fprintf(stderr, "FILE fopen error");return 1;}while (1){int c= fgetc(src);if(EOF == c)    {break;} fputc(c,dest);} fclose(src);   fclose(dest);return 0;
}
#include <stdio.h>
int main(int argc, char **argv)
{if(argc <3){printf("user:./a.out file1 file2");return 1;}FILE *src = fopen(argv[1], "r");FILE *des = fopen(argv[2], "w");if(NULL == src &&NULL == des){fprintf(stderr, "fopen error");return 1;}while(1){char buf[1024] = {0};if(NULL == fgets(buf, sizeof(buf), src)){break;}fputs(buf, des);}fclose(src);fclose(des);return 0;
}

(2)对一个文件的a-z统计个数

#include <stdio.h>
int main(int argc, char **argv)
{char i ='a'; for(i = 'a';i<='z';++i){FILE *fp = fopen("/etc/passwd", "r");if(NULL == fp){fprintf(stderr,"fopen error");return 1;}int counter = 0;while(1){char c =fgetc(fp);if(EOF == c){break;}if(i == c){counter++;}}printf("%c :%d\n",i,counter);fclose(fp);}return 0;
}

(3)对一个文件统计行数

#include <stdio.h>
int main(int argc, char **argv)
{FILE *fp = fopen("/etc/passwd", "r");if(NULL == fp){fprintf(stderr,"fopen error");return 1;}int counter = 0;while(1){char buf[1024] = {0};if(NULL == fgets(buf, sizeof(buf), fp)){break;}counter++;}printf("%d\n",counter);fclose(fp);return 0;
}

11.main后面的两个参数

(1)argc:参数的意思,命令行参数的个数有几个;char *argv:就是./a.out 后面写的

  • od -c命令:以字符方式打印,后面加文件
  • od -t x1 命令:以16进制打印

相关文章:

day24:零基础学嵌入式之系统编程

一、系统编程包含 文件的读写、和常用操作&#xff0c;操作系统已经进入多任务时代&#xff0c;在同一时刻同时运行多个程序。 二、标准io&#xff1b;stdio.h&#xff08;以计算机为中心&#xff09; 1.头文件路径&#xff1a;/usr/include/stdio.h so动态库&#xff1a;st…...

2.10 财务分析

10.1 财务报告构成及列报基本要求 10.1.1 财务报告 1.财务报告的构成 资产负债表、利润表、现金流量表、所有者权益变动表和附注小型企业可不编现金流量表。 2.财务报表及其作用 1.资产负债表的内容及其作用 内容 资产类、流动性大小顺序排序。流动资产、非流动资产负债和…...

docker容器知识

一、docker与docker compose区别&#xff1a; 1、docker是创建和管理单个容器的工具&#xff0c;适合简单的应用或服务&#xff1b; 2、docker compose是管理多容器应用的工具&#xff0c;适合复杂的、多服务的应用程序&#xff1b; 3、docker与docker compose对比&#xff…...

国标GB28181视频EasyGBS视频监控平台搭建城市交通道路可视化管理/道路视频巡检/应急监控指挥

一、方案背景​ 随着城市人口与车辆激增&#xff0c;交通管理面临严峻挑战&#xff1a;高峰期道路拥堵、事故处理滞后、违法取证低效&#xff0c;传统管理模式难以为继。智慧交通依托信息技术&#xff0c;成为破局关键&#xff0c;其中视频监控是实现精细化管理的核心。国标GB…...

【LeetCode 热题 100】有效的括号 / 最小栈 / 字符串解码 / 柱状图中最大的矩形

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;LeetCode 热题 100 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 栈有效的括号最小栈字符串解码每日温度柱状图中最大的矩形 堆数组中的第K个最大元素 栈 有效的括号 有效的括号 cl…...

Oracle中如何解决BUFFER BUSY WAITS

和BUFFER CACHE相关的常见等待事件还有BUFFER BUSY WAITS。顾名思义&#xff0c;BUFFER BUSY WAITS等待事件指的是多个会话不能共享缓冲区中的数据块而引发的等待事件。 发生BUFFER BUSY WAITS事件时&#xff0c;P1值代表数据文件号&#xff0c;P2值代表数据块号&#xff0c;P3…...

LeetCode 93.复原IP地址 LeetCode 78.子集 LeetCode 90.子集II

LeetCode 93.复原IP地址 其实思想跟回文字符串那道题是类似的&#xff0c;但难点在于这道题的终止条件和判断是否IP地址进行划分后是否合理&#xff1f; 思路&#xff1a; 通过一个int类型的全局变量来记载 " . " 的数目 / 记录你当前所获得的小数组的数目&#x…...

Java转Go日记(四十一):Gorm删除

1.1.1. 删除/软删除 警告删除记录时&#xff0c;需要确保其主要字段具有值&#xff0c;GORM将使用主键删除记录&#xff0c;如果主要字段为空&#xff0c;GORM将删除模型的所有记录 // 删除存在的记录db.Delete(&email)DELETE from emails where id10;// 为Delete语句添加…...

Java基于SpringBoot的公交智能化系统,附源码+文档说明

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…...

电子电器架构 --- 汽车高性能计算

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...

Journal of Real-Time Image Processing 投稿过程

投稿要求双栏12页以内(包括参考文献)&#xff0c;这个排版要求感觉不是很严格&#xff0c;我当时就是用普通的双栏的格式去拍的版&#xff0c;然后就提交了&#xff0c;也没单独去下载模版。 投稿过程 12.12 Submission received 12.12 Submission is under technical check 1…...

利用basee64特性 -- BYUCTF 2025 JWTF

题目信息: Unfortunately one of our JWTs was compromised by attackers, so we created a JWT Revocation List to ensure they can’t use it anymore. 代码量很少 # 导入必要的模块 # 从 flask 模块导入 Flask, request, redirect, make_response, jsonify 类和函数 from f…...

湖北理元理律师事务所:科学债务规划如何平衡还款与生活

在债务压力普遍加剧的背景下&#xff0c;如何通过专业规划实现“还款不停生活”&#xff0c;成为许多债务人关注的核心问题。湖北理元理律师事务所基于多年实务经验&#xff0c;总结出一套兼顾法律合规性与人性化需求的债务管理方案&#xff0c;其核心逻辑在于通过法律工具优化…...

1.1HarmonyOS NEXT技术架构深度解析:微内核架构与系统分层

HarmonyOS NEXT技术架构深度解析&#xff1a;微内核架构与系统分层 摘要 作为面向万物互联时代的全场景操作系统&#xff0c;HarmonyOS NEXT通过革命性的星核架构&#xff08;Star Kernel&#xff09;重构了系统底层架构。本文将深入解析HarmonyOS NEXT的微内核设计原理、系统…...

考研系列-408真题计算机组成原理篇(2015-2019)

写在前面 此文章是本人在备考过程中408真题计算机组成原理部分(2015年-2019年)的易错题及相应的知识点整理,后期复习也常常用到,对于知识提炼归纳理解起到了很大的作用,分享出来希望帮助到大家~ # 2015年 1.IO端口 接口电路中可以被CPU直接访问的寄存器 IO控制方式-中断…...

HarmonyOS Next 关键资产的解释

关键资产的安全存储与管理&#xff1a;HarmonyOS Asset Store Kit 深度解析 一、关键资产的定义与重要性 关键资产&#xff08;Critical Asset&#xff09;是指应用运行过程中涉及的短敏感数据&#xff0c;包括但不限于用户密码、身份令牌&#xff08;Token&#xff09;、银行…...

Awesome ChatGPT Prompts:释放AI对话潜力的开源利器

项目概览 Awesome ChatGPT Prompts 是由土耳其开发者 Fatih Kadir Akın 发起的开源项目,托管于 GitHub,旨在通过精心设计的提示词模板(Prompts)优化用户与 ChatGPT 的交互体验。项目以 Markdown 和 CSV 格式管理模板,无需复杂编程语言,但需文本处理能力,目前已在 GitH…...

第6章 C控制语句:循环

目录 6.1 再探while 循环6.2 while语句6.3 比较大小&#xff1a;使用关系运算符和表达式6.4 不确定的循环与计数循环6.5 for循环6.6 更多赋值运算符&#xff1a;、-、*、/和%6.7 逗号运算符6.8 退出条件循环&#xff1a;do while6.9 选择哪种循环6.10 嵌套循环6.11 数组6.12 使…...

海盗王客户端更换横版任务面板的实现

海盗王的任务面板&#xff0c;采用的是竖长设计&#xff0c;上半部分显示任务列表&#xff0c;下半部分显示任务详情。 这样的设计会带来一个问题&#xff1a;就是任务多的时候&#xff0c;不能完整显示&#xff0c;只能显示前面几个&#xff0c;后面的会隐藏到滚动条里面&…...

【git】在Windows上搭建git服务器

1、简述 常用的搭建git服务器的工具有&#xff1a;Gogs、Gitblit、Gitea、GitLab 它们的区别如下&#xff1a; 功能GogsGitblitGiteaGitLab界面语言中文、英文等多语言英文为主中文、英文等多语言英文为主权限管理基础分支权限详细分支权限基础 详细分支权限非常完善代码审查…...

leetcode hot100刷题日记——6.和为 K 的子数组

解答&#xff1a;前缀和思想&#xff0c;见灵茶山艾府大大题解。 &#xff08;1&#xff09;前缀和思想&#xff1a; 前缀和数组prefix_sum的定义是prefix_sum[i] nums[0] nums[1] … nums[i]。如果存在两个前缀和prefix_sum[j]和prefix_sum[i]满足prefix_sum[i] - prefi…...

人工智能的“歧视”:“她数据”在算法运行中隐形

纵观人类的发展史&#xff0c;每一次科技进步都将对性别平等产生深刻影响。尤其是当下&#xff0c;人们对于借助人工智能技术快速发展来弥合性别不平等寄予厚望。 但很多人没想过&#xff0c;人工智能技术本身是客观中立、不存在“算法歧视”“性别偏见的吗&#xff1f; 弗吉…...

Java数组列表 - ArrayList

在Java中&#xff0c;ArrayList是一种非常实用的数据结构&#xff0c;它允许开发者动态地管理数组大小。通过ArrayList&#xff0c;可以轻松地添加、删除和修改元素&#xff0c;以及获取元素和列表的大小。例如&#xff0c;创建一个ArrayList来存储字符串&#xff0c;然后通过a…...

跨境外贸电商供应链一体化ERP管理系统

项目介绍: 跨境外贸电商供应链一体化ERP管理系统 高清视频演示: 跨境外贸电商供应链一体化ERP管理系统_哔哩哔哩_bilibili 系统说明: 外贸电商产品ERP系统包含多个角色&#xff08;客户、客服、工厂、供应商&#xff09;和多个功能模块&#xff0c;以下是系统功能的详细说明…...

数据库表连接结构详解

数据库表连接结构详解 介绍 本文基于提供的SQL表结构&#xff0c;解释了表之间的连接关系。这些表主要涉及AI系统配置&#xff0c;如客户端、顾问和智能体等。通过外键&#xff08;如client_id、agent_id&#xff09;&#xff0c;这些表形成关联网络。 表连接概述 以下是主…...

Vue3.0教程005:watch监视ref定义的【基本类型】数据和【对象类型】数据

文章目录 4、watch监视4.1 前言4.2 情况一4.3 情况二 4、watch监视 4.1 前言 作用&#xff1a;监视数据的变化&#xff08;和vue2中的watch作用一致&#xff09;特点&#xff1a;Vue3中的watch只能监视以下四种数据&#xff1a; ref定义的数据。reactive定义的数据。函数返回…...

【Java的批量操作】

系列文章目录 Java知识点 文章目录 系列文章目录&#x1f449;前言&#x1f449;一、常见批量操作方法&#x1f449;1-1、JDBC 批量操作&#xff08;数据库&#xff09;&#x1f449;1-2、MyBatis 批量操作&#x1f449;1-3、Java 8 Stream 批量处理集合&#x1f449;1-4、多线…...

流复备机断档处理

文章目录 环境症状问题原因解决方案 环境 系统平台&#xff1a;UOS&#xff08;海光&#xff09;,UOS &#xff08;飞腾&#xff09;,UOS&#xff08;鲲鹏&#xff09;,UOS&#xff08;龙芯&#xff09;,UOS &#xff08;申威&#xff09;,银河麒麟svs&#xff08;X86_64&…...

PostgreSQL架构

目录 一、PostgreSQL核心特性与优势 1.PostgreSQL简介 2.PostgreSQL的核心特点 &#xff08;1&#xff09;开源与自由 &#xff08;2&#xff09;高度符合SQL标准 &#xff08;3&#xff09;丰富的数据类型 &#xff08;4&#xff09;事务与并发控制 &#xff08;5&…...

苍穹外卖系统结构与功能报告

一、系统简介 苍穹外卖系统是为餐饮企业定制的数字化解决方案&#xff0c;包含管理端后台和用户端小程序两部分。管理端面向餐饮企业员工&#xff0c;支持菜品、套餐、订单等核心业务的数字化管理&#xff1b;用户端面向消费者&#xff0c;提供在线点餐、支付、订单跟踪等功能…...

CAU数据库class3 关系型数据库基础

关系数据库模型的3个要素 数据结构 二维表 数据操作 特点 操作的对象为元组&#xff0c;操作的结果为元组高度非过程化&#xff0c;用户不关系是怎么实现的 完整性约束 数据完整性是指保证数据真确的特性 实体完整性参照完整性用户定义完整性 关系的形式定义 例子&…...

【Qt】在OrinNX上,使用命令安装qtmultimedia5-dev时报错

1、问题描述 在OrinNX+Ubuntu20.04上,使用命令安装qtmultimedia5-dev时报错 sudo apt install qtmultimedia5-devThe following packages have unmet dependencies: qtmultimedia5-dev : Depends: libpulse-dev but it is not going to be installed E: Unable to correct p…...

阿里云CDN刷新预热--刷新URL

文章目录 一、全英文URL刷新预热二、掺杂中文的URL刷新预热2.1 对带中文URL进行编码2.2 预热刷新 三、CDN刷新-核心作用与价值3.1 核心作用3.2 核心价值3.3 典型使用场景 *最后我想说&#xff1a;请你不要相信我说的每一句话&#xff0c;这只是我的个人经验* 一、全英文URL刷新…...

anaconda、miniconda、conda的关系及miniconda安装

anaconda、miniconda、conda的关系及miniconda安装 文章目录 前言正文定义关系Linux安装miniconda新建一个python3.8环境 参考 前言 本文用于记录关于Anaconda、conda和Miniconda的定义及其关系的总结123&#xff1a; 正文 定义 conda 一个跨平台的开源包管理和环境管理工具…...

SpringBoot实现本地对象存储【minio、阿里云、七牛云】

引入依赖 <!-- minio --> <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.12</version> </dependency><!-- 阿里云oss --> <dependency><groupId>com.aliyun.…...

阿里云百炼(1) : 阿里云百炼应用问答_回答图片问题_方案1_提问时上传图片文件

直接用于拍照答题不大理想, 可能适用其他用途, 更好的方案: 阿里云百炼(1) : 阿里云百炼应用问答_回答图片问题_方案2_提取题目再提问-CSDN博客 1.实现代码 package cn.nordrassil.ly.test.拍照答题;import com.alibaba.dashscope.app.Application; import com.alibaba.dashsc…...

理解阿里云的MQTT

一、阿里云的mqtt分几种 阿里云提供的MQTT服务主要分为‌标准MQTT协议‌和‌P2P模式MQTT‌两种类型&#xff0c;二者在通信模式及适用场景上有显著差异&#xff1a; 1、标准MQTT与P2P MQTT的区别 ‌特性‌‌标准MQTT‌‌P2P模式MQTT‌‌通信模式‌发布/订阅&#xff08;Pub/S…...

HarmonyOS5云服务技术分享--云缓存快速上手指南

大家好&#xff0c;今天我们来聊聊如何快速上手华为AppGallery Connect&#xff08;AGC&#xff09;的云缓存服务。作为一款基于Serverless架构的Key-Value型缓存服务&#xff0c;它不仅能自动弹性伸缩&#xff0c;还能免去运维烦恼&#xff0c;非常适合高并发场景下的数据快速…...

FreeSWITCH rtcp-mux 测试

rtcp 跟 rtp 占用同一个端口&#xff0c;这就是 rtcp 复用 Fs 呼出是这样的&#xff1a; originate [rtcp_muxtrue][rtcp_audio_interval_msec5000]user/1001 &echo 需要同时指定 rtcp_audio_interval_msec&#xff0c;否则 rtcp_mux 不能生效 Fs 呼入不需要配置&#xf…...

浏览器播放 WebRTC 视频流

源码&#xff08;vue&#xff09; <template><video ref"videoElement" class"video" autoplay muted playsinline></video> </template><script setup lang"ts">import { onBeforeUnmount, onMounted, ref } fr…...

SpringBoot3+Vue3(1)-后端 请求头校验,jwt退出登录,mybaits实现数据库用户校验

1.后端&#xff1a;jwt请求头校验 解析 工具类jwtUtils 解析token 令牌是否过期&#xff0c;验证 正常、异常、运行时错误 倒入工具类是resource 工具类中添加解析用户的方法&#xff1a; 在 在工具类添加id解析 此处调用 添加controller做测试 测试&…...

Oracle RAC 中的 RBAL 进程

Oracle RAC 中的 RBAL 进程 RBAL 进程概述 RBAL&#xff08;ReBalancer&#xff09;是 Oracle RAC 和 ASM&#xff08;Automatic Storage Management&#xff09;环境中的一个关键后台进程&#xff0c;主要负责 ASM 磁盘组的重新平衡操作。 主要功能 磁盘组监控&#xff1a…...

mac上将 Excel 文件的扩展名从 .xls 改为 .xlsx 后,打开时报错:“文件格式或文件扩展名无效”。

方法一&#xff1a;使用 Excel for Mac 打开并另存为 打开 Excel 应用程序。 打开你的 .xls 文件&#xff1a; 如果 Excel 能正常打开它&#xff0c;说明文件没问题。 在菜单栏点击&#xff1a;文件 → 另存为。 在文件格式中选择&#xff1a;Excel 工作簿 (.xlsx)。 点击保存…...

【算法-栈】深入栈模拟题:从题型特征到实现技巧

算法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;双指针滑动窗口二分查找前缀和位运算模拟链表哈希表字符串模拟 在算法学习中&#xff0c;栈是最基础也是最容易上手的数据结构之一。然而&#xff0c;当它被用于模拟复杂操作流程时&#xff0c;却常常成为区分“…...

OK536N-C测评:开箱体验以及在Linux下如何管理开发板

前言 OK536N-C终于到我手上了&#xff0c;因为我的主要领域是做嵌入式音视频。例如相机类产品&#xff0c;录像类产品&#xff0c;直播类产品都是我所涉及到的。本片文章一起来开箱见证下OK536N-C有哪些魅力&#xff0c;据说很强。 对于一个嵌入式领域的开发者来说&#xff0…...

【强化学习】深度强化学习 - Deep Q-Network(DQN)算法

文章目录 摘要一、DQN核心原理1. Q-learning回顾2. 用深度网络逼近Q函数3. 经验回放&#xff08;Experience Replay&#xff09;4. 目标网络&#xff08;Target Network&#xff09;5. 损失函数6. ε-贪心策略&#xff08;ε-greedy&#xff09; 二、算法流程与伪代码三、典型实…...

Python实例题:PyOt实现简易浏览器

目录 Python实例题 题目 代码实现 功能说明 基本浏览功能&#xff1a; 标签页支持&#xff1a; 用户界面&#xff1a; 使用方法 注意事项 Python实例题 题目 PyOt实现简易浏览器 代码实现 import sys from PyQt5.QtWidgets import (QApplication, QMainWindow, QT…...

MinerU可视化界面程序部署(Windows环境)

前提是要安装好MinerU&#xff0c;才能部署可视化程序&#xff08;这个可视化程序的源码是MinerU自带的&#xff09;&#xff0c;安装MinerU的步骤参考&#xff1a; MinerU安装(pdf转markdown、json)-CSDN博客 下面进行可视化界面的部署操作&#xff08;在Windows环境部署&…...

STM32之定时器(TIMER)与脉冲宽度调制(PWM)

一、STM32定时器的原理与应用 基本概念 定时器的作用一般是为了使用定时功能和中断功能&#xff08;洗衣机、微波炉、电风扇、智能空调......&#xff09;&#xff0c;当然在STM32中也可以利用定时器产生周期性的脉冲信号来控制不同的外设&#xff08;电机的转速、舵机的角度…...

Linux jq 命令使用详解

简介 jq 是一个命令行 JSON 处理器&#xff0c;允许解析、过滤、转换和格式化 JSON 数据&#xff0c;提取特定字段或重构 JSON&#xff0c;高效使用 JSON 中的 API 或配置文件。 安装 Debian/Ubuntu sudo apt install jqCentOS/RHEL sudo yum install jq或sudo dnf insta…...