8.进程概念(四)
一、环境变量
1.基本概念
环境变量(environment variables)⼀般是指在操作系统中用来指定操作系统运行环境的⼀些参数。如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性。
2.main函数实例
测试代码如下:
#include<stdio.h> int main(int argc,char* argv[]) { for(int i = 0;i<argc;i++) { printf("argv[%d]->%s\n",i,argv[i]); } return 0; }
main命令行参数是实现程序不同子功能的方法。(指令选项的实现原理)
3. 一个例子,一个环境变量(重点)
1)要执行一个程序,必须先找到它!
2)系统中存在环境变量,帮助找到二进制文件。
谁找?bash通过PATH找。
PATH->系统中搜索指令的默认搜索路径。
env->查看环境变量
名称=内容
注:PATH是一个内存级的环境变量,修改PATH方法:
1)直接赋值
2)添加环境变量,采用字符串拼接的方式
1.如何理解环境变量?(存储的角度)
bash形成一张表,环境变量表
2.环境变量,最开始从哪里来的?
系统的相关配置文件中来的。
在用户的家目录下,有两个配置文件,.bashrc和.bash_profile
.bashrc依赖于/etc/bashrc的内容.bash_profile依赖于.bashrc的路径,bash_profile是拼接PATH的文件。
修改bash_profile中的PATH,重新登录时,可以看到之前添加的路径被加载到PATH中了。
4.认识更多的环境变量
HOME:当前用户的家目录
SHELL:外壳程序路径
USER:当前用户
LOGNAME:登录名称,登录时更新
HITSTSIZE:历史命令记录的最大条数(history)
HOSTNAME:当前登录的主机名
PWD:当前工作路径
OLDPWD:上一次工作路径(cd -路径切换原理)
5.获取环境变量的方法(重点)
环境变量通常具有某种特殊用途,在系统中通常具有全局属性。
1)操作
export key=value 导入和修改环境变量
unset key 删除环境变量
env 查看环境变量
echo $key 查看环境变量对应内容
2)代码
int main(int agrc, char *agrv[], char *env[]);
其中env是父进程传递的,env是存放环境变量字符串的指针数组。
如何知道main函数有几个参数的?
编译器对main函数的带的参数做语法分析,然后将参数个数给_start函数的arg_count,里面做判断,调用对应参数个数的main函数。
_start {int ret = 0;int arg_count = 3;if(arg_count==0)ret = main();else if(arg_count==2)ret = main(argc,agrv);elseret = main(argc,argv,env); }
方法1:main函数参数获取环境变量->父进程传递的环境变量->环境变量可以被子进程继承。
方法2:getenv,setenv,<stdlib.h>,根据环境变量的名称key,获取对应的内容value,获取失败返回NULL。(可以根据这个做身份的识别)
方法3:extern char **environ; <unistd.h> 全局的环境变量表指针。
6.理解环境变量的特性
环境变量具有全局特性。
bash会记录两套变量:1.环境 2.本地
两个概念:
a.变量名=value->本地变量->不会被子进程继承,只能在bash内部被使用
操作:a=10
b.我们的环境变量在谁里面?bash
操作:export a ->可以通过env看到
set 显示环境变量和本地变量
但因为a变量不会被子进程继承,那么export->内建命令(built-command)->不需要创建子进程,而是让bash自己执行->bash自己调用函数或者系统调用完成。
原因:环境变量需在当前 Shell 及其子进程中生效。若 export 是外部命令,子进程无法直接修改父进程的环境变量表(因进程间内存隔离),导致变量无法正确传递。
PATH没了,pwd,export,cd能用原因:这些命令是内建命令,只要bash能跑就能跑。
二、程序地址空间
测试代码:
#include <stdio.h> #include <unistd.h> #include <stdlib.h>int g_unval; int g_val = 100;int main(int argc, char *argv[], char *env[]) {const char *str = "helloworld";printf("code addr: %p\n", main);printf("init global addr: %p\n", &g_val);printf("uninit global addr: %p\n", &g_unval);static int test = 10;char *heap_mem = (char*)malloc(10);char *heap_mem1 = (char*)malloc(10);char *heap_mem2 = (char*)malloc(10);char *heap_mem3 = (char*)malloc(10);printf("heap addr: %p\n", heap_mem); //heap_mem(0), &heap_mem(1)printf("heap addr: %p\n", heap_mem1); //heap_mem(0), &heap_mem(1)printf("heap addr: %p\n", heap_mem2); //heap_mem(0), &heap_mem(1)printf("heap addr: %p\n", heap_mem3); //heap_mem(0), &heap_mem(1) printf("test static addr: %p\n", &test); //heap_mem(0), &heap_mem(1)printf("stack addr: %p\n", &heap_mem); //heap_mem(0), &heap_mem(1)printf("stack addr: %p\n", &heap_mem1); //heap_mem(0), &heap_mem(1)printf("stack addr: %p\n", &heap_mem2); //heap_mem(0), &heap_mem(1)printf("stack addr: %p\n", &heap_mem3); //heap_mem(0), &heap_mem(1)printf("read only string addr: %p\n", str);for(int i = 0 ;i < argc; i++){printf("argv[%d]: %p\n", i, argv[i]);}for(int i = 0; env[i]; i++){printf("env[%d]: %p\n", i, env[i]);}return 0; }
地址从低到高分为:用户空间(正文代码、初始化数据、未初始化数据、堆区、共享区、栈区、命令行参数和环境变量)和 内核空间
常量字符串是硬编码到代码里的,因为代码是只读的,所以常量字符串也是只读的。
static变量就是全局变量,具有全局属性,只不过作用域是局部的。
子进程修改,父进程变量不修改,但gval地址不变->说明这个地址不是物理内存地址->虚拟地址,C/C++指针用到的地址,全部都是虚拟地址。
原因:页表,gval虚拟地址在父子进程中虽然是一样的,但是在父子进程的页表中映射的物理内存地址不一样。
虚拟地址空间(重点)
1)一个进程,一个程序地址空间
2)一个进程,一套页表
3)页表是用来做物理内存和虚拟内存映射的。
写时拷贝的触发过程:子进程修改共享的变量,会触发写时拷贝,操作系统开辟一块物理内存,将修改前的值拷贝到物理内存,然后修改子进程页表中虚拟内存对应的物理内存为这个新开辟的物理内存地址,子进程才能修改数据。
虽然父子进程的虚拟地址一样,但是映射的物理内存不一样。
虚拟地址空间形象案例:
让每一个进程都人认为自己有4G物理内存,或者,每一个进程都认为自己独占物理内存。
饼要不要管理?
要管理->先描述,再组织。
虚拟地址空间:本质就是一个数据结构,struct mm_struct
如何管理进程地址空间?
区域划分,只需要确认区域的开始和结束即可!
内核中的mm_struct:
1)在虚拟空间中申请指定大小的空间(调整区域划分)
2)加载程序,申请物理空间
物理地址转化成虚拟地址->提供给上层用户使用。
mm_struct:
1.开辟空间
2.初始化的值在哪里?->加载磁盘数据到内存的时候,进行初始化。
为什么?(重点)
1.将地址从无序变成有序
2.地址转换的过程中,也可以对你的地址和操作进行合法性判断,进而保护物理内存
a.什么是野指针?
对应的虚拟地址,查不到页表,物理内存已经被释放了,对应的虚拟地址:物理内存键值对被删除了。
b.char *str="hello world"; *str='H';为什么在字符常量区写入,就会崩溃?
查找页表时,权限被拦截了,字符常量是被硬编码到代码区的,代码区是只读的。
注:
1)我们可以不加载数据,只有task_struct,mm_struct,页表
2)创建进程,先有task_struct,mm_struct,页表,再有代码和数据。
3)如何理解进程挂起?
将页表的物理内存数据换出到磁盘的swap分区。
缺页中断:当程序访问一个尚未分配物理内存空间的虚拟地址时,操作系统会检测到这个情况,并触发一个异常,即缺页中断。操作系统通过中断服务程序来处理缺页中断。
3.让进程管理和内存管理解耦合
因为有地址空间的存在和页表的映射的存在,我们的物理内存中可以对未来的数据进行任意位置的加载!物理内存的分配 和 进程的管理就可以做到没有关系。若直接指向物理内存,加载代码,数据时要修改PCB内指针,若申请内存,指针可能又要修改。知识点(重要)每个分区每次申请虚拟内存不一定是挨着放的,为什么?
mm_struct内有一个struct vm_area_struct的指针,用来维护一个进程中程序申请的所有虚拟内存的链表。记录了虚拟内存的开始和结束,以判断其分区。虚拟空间的组织方式有两种:1)当虚拟区较少时采取单链表,由mmap指针指向这个链表;2)当虚拟区间多时采取红黑树进行管理,由mm_rb指向这棵树。linux内核使用 vm_area_struct 结构来表示⼀个独立的虚拟内存区域(VMA),由于每个不同质的虚拟内存区域功能和内部机制都不同,因此⼀个进程使用多个 vm_area_struct 结构来分别表示不同类型的虚拟内存区域。上面提到的两种组织方式使用的就是 vm_area_struct 结构来连接各个VMA,方便进程快速访问。
虚拟内存管理形象图:
为什么要写时拷贝?1.减少创建子进程的时间2.减少内存浪费
因为有写时拷贝技术的存在,所以父子进程得以彻底分离!完成了进程独立性的技术保证!写时拷贝,是⼀种延时申请技术,可以提高整机内存的使用率。数据段只读->修改了,违背权限,触发写时拷贝->数据段可写。
相关文章:
8.进程概念(四)
一、环境变量 1.基本概念 环境变量(environment variables)⼀般是指在操作系统中用来指定操作系统运行环境的⼀些参数。 如:我们在编写C/C代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成…...
Windows服务器提权实战:常见方法、场景与防御指南
在渗透测试中,权限提升(提权)是从低权限账户(如IIS、Apache运行账户)获取系统管理员(如SYSTEM)权限的关键步骤。本文将从实战角度解析Windows服务器提权的常见技术,并结合真…...
OpenGL-ES 学习(14) ----顶点指定和基本图元的绘制
目录 本节概述顶点的指定常量顶点属性和顶点数组顶点数组顶点属性的定义Shader 中声明顶点属性变量顶点属性的绑定 基本图元绘制基本图元三角形直线绘制图元的API 本节概述 绘制图形的第一步就是指定顶点坐标,可以每个顶点指定,也可以是用于所有顶点的常…...
spring-cloud-alibaba最新版本聚合项目创建
1. 创建聚合项目 修改 pom.xml spring-boot 当前最新版本是 3.4.5 但是 spring-cloud-alibaba 的最新版本是 2023.0.3.2,只适配到 spring-boot 3.2.4 还没有适配到 spring-boot 的 3.4.5 版本。 pom.xml 文件内容如下(可以直接复制): <?xml vers…...
网络分析/
三、网络分析(Network Analysis) 网络分析用于解决路径规划、资源分配等问题,广泛应用于交通规划、物流配送、紧急救援等领域。ArcPy 提供了强大的网络分析工具,如 MakeNetworkDataset、Solve 等。 (一)使用…...
Flutter PIP 插件 ---- 新增PipActivity,Android 11以下支持自动进入PIP Mode
接上文 Flutter PIP 插件 ---- Android 项目地址 PIP, pub.dev也已经同步发布 pip 0.0.3,你的加星和点赞,将是我继续改进最大的动力 开发文档 Add videos using picture-in-picture (PiP)介绍PIP功能从 Android 8.0 (API level 26) 引入&…...
权限提升—Linux提权内核溢出漏洞辅助项目
前言 今天开启Linux提权的篇章,主要是讲一下Linux的内核漏洞提权,利用方式和Windows系统漏洞提权差不多,也是网上的项目扫一下,然后根据漏洞编号去找exp即可。 信息收集 首先要说一下Linux用户的权限划分。 系统用户ÿ…...
超稳定性理论
为了更好的理解后面如何利用超稳定性理论来设计MRACS,本篇先对超稳定性理论做一个介绍。 1、理论介绍 在超稳定性理论中,核心的系统结构如下: 其包含一个线性的前向回路 G ( s ) G(s) G(s)和一个非线性的反馈回路 φ ( v ) \varphi (v) φ…...
治理和管理的区别
治理(Governance)与管理(Management)是两个在组织和社会运行中经常被提及的概念,它们虽然在某些方面有相似之处,但在内涵、范围、主体和目标等方面存在显著的区别。以下是它们的主要区别: 一、…...
业务流程BPM能力框架体系及华为中兴流程变革案例P83(83页PPT)(文末有下载方式)
资料解读:《业务流程 BPM 能力框架体系及华为中兴流程变革案例》 详细资料请看本解读文章的最后内容。 该文档围绕业务流程管理(BPM)能力框架体系展开,先阐述其定义、驱动因素与能力框架,再详细介绍战略规划、流程治理…...
如何通过日志在本地调试LangChain编写的程序?
LangSmith可以记录LangChain程序对LLM的调用,但它需要登陆LangSmith网站才能看到。有什么办法在本地就能看到详细的信息,以方便调试LangChain编写的程序吗? 使用LangChain提供的set_debug(True) 在Python代码中只需要导入set_debug这个方法…...
UE实用地编插件Physical Layout Tool
免费插件 https://www.fab.com/zh-cn/listings/a7fb6fcf-596f-48e9-83cc-f584aea316b1 可以通过物理模拟批量放置物体 不用再一个个摆放了 装饰环境从未如此简单,您不必再考虑对齐物体。 物理地放置物体,移动它们,在移动或在地图上放置物体…...
传感器的精度,灵敏度等概念介绍
文章目录 🏔️ 海拔高度传感器的四个核心指标1. 🎯 **精度(Accuracy)——“测得的高度准不准”**2. ⚡ **灵敏度(Sensitivity)——“高度微小变化有没有反应”**3. 🔍 **分辨率(Reso…...
前端八股 CSS 1
盒子模型 进行布局时将所有元素表示为一个个盒子box padding margin border content content:盒子内容 待显示的文本和图像 padding:内边距,内容和border之间的空间,不能为负数,受bkc影响 border:边框,…...
Transformer架构的解耦重组现象
技术演进图谱与技术成熟度曲线 (一)架构创新范式迭代 1.1 Transformer架构的解耦重组现象 以2025年Opt模型为例,其通过引入强化学习微调模块实现了传统单层堆叠架构向"感知-推理分离"模式的转型。实验数据显示,该架构…...
【Android】四大组件
目录 1. Activity 2. Service 3. BroadcastReceiver 4. ContentProvider 四大组件各自承担着不同的职责,彼此之间协同工作,共同为用户提供一个流畅的APP体验。 1. Activity 负责展示用户界面,就像App的一个个“页面”,用户通…...
贪心算法精解(Java实现):从理论到实战
一、贪心算法概述 贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最优决策的算法策略。它通过局部最优选择来达到全局最优解,具有高效、简洁的特点。 核心特点: 局部最优选择:每一步都做出当前看…...
基于BERT类的MRPC语义相似度检测(从0到-1系列)
基于BERT类的MRPC语义相似度检测(从0到-1系列) 介绍 BERT(Bidirectional Encoder Representations from Transformers)是由Google开发的一种预训练模型,它是一种基于Transformer机制的深度双向模型,可以对…...
mysql-窗口函数一
目录 一、感受一下分组与窗口函数的区别 二、滑动窗口(子窗口)大小的确认 2.1 分组函数下order by使用 2.2 窗口子句 2.3 执行流程 三、函数使用 窗口函数需要mysql的版本大于等于8才行,可以先检查一下自己的mysql版本是多少 select ve…...
HashMap,高效 哈希
java HashMap 有独特的设计。 哈希表数组的每个位置是一个哈希桶,里面由链表或红黑树实现。(> 8 或 < 6 的变化时,避免频繁切换) 容量(capacity): 哈希表中桶(bucket…...
PyTorch入门------训练图像分类器
前言 1. 操作步骤 2. 数据集 一、公共部分 1.加载并归一化 CIFAR10 2.定义卷积神经网络 二、训练、保存模型参数部分 train_and_save.py 3.定义损失函数和优化器 4.训练网络(使用 CPU 或者 GPU) 5.保存训练好的模型参数 三、加载模型参数、模型推理部分 load_and_infer.py 6…...
DeepSeek V3 架构创新:大规模MoE与辅助损失移除
DeepSeek 团队推出的全新 DeepSeek V3 模型版本,相比之前的 V2 版本,V3 的参数量从两千多亿一跃攀升到 6710 亿,近乎实现了参数规模的三倍增长。如此宏大的模型规模并不只是简单地堆砌参数,而是建立在稀疏混合专家(Mixture-of-Experts,MoE)结构之上。得益于 MoE 的稀疏激…...
MCP 多工具协作链路设计:打造真正的智能工作流
目录 [TOC] 🚀 MCP 多工具协作链路设计:打造真正的智能工作流 🌟 多工具协作链核心思想 🛠️ 设计示例:智能文档分析系统 📑 1. MCP Server 定义多工具 list_txt_files.py read_file_content.py su…...
某修改版软件,已突破限制!
聊一聊 现在很多输入法都带有广告。 用着用着,不是提示升级就是弹出资讯。 特别是忙的时候,很影响心情。 今天给大家分享一款干净的输入法软件。 希望能你喜欢。 软件介绍 Q拼音输入法 工具我们下载后,进行安装。 双击打开,…...
透视Linux内核:深度剖析Socket机制的本质
在Linux操作系统构建的网络世界里,Socket 宛如纵横交错的交通枢纽,承担着不同应用程序间数据往来的重任。无论是日常浏览网页时,浏览器与 Web 服务器间信息的快速交互;还是畅玩网络游戏过程中,玩家操作指令与游戏服务器…...
PostgreSQL数据表操作SQL
数据表操作 创建表 CREATE TABLE t_test(id SERIAL PRIMARY KEY,name varchar(30),birthday date);修改表名 ALTER TABLE t_test RENAME TO t_test1;添加列 ALTER TABLE t_test1 ADD COLUMN score numeric(5,2);删除列 ALTER TABLE t_test1 DROP COLUMN score;修改数据类型 AL…...
OpenAI最新发布的GPT-4.1系列模型,性能体验如何?
简单来说,这次GPT-4.1的核心思路就是:更实用、更懂开发者、更便宜!OpenAI这次没搞太多花里胡哨的概念,而是实实在在地提升了大家最关心的几个点:写代码、听指令、处理超长文本,而且知识库也更新到了2024年6月。 写代码。要说这次GPT-4.1最亮眼的地方,可能就是写代码这块…...
2025五一数学建模C题完整分析论文(共36页)(含模型、可运行代码、数据)
2025年五一数学建模C题完整分析论文 摘要 一、问题分析 二、问题重述 三、模型假设 四、符号定义 五、 模型建立与求解 5.1问题1 5.1.1问题1思路分析 5.1.2问题1模型建立 5.1.3问题1代码 5.1.4问题1求解结果 5.2问题2 5.2.1问题2思路分析 5.2.2问题…...
Vue2基础速成
一、准备工作 首先下载vue2的JavaScript库,并且命名为vue.min.js 下载链接:https://cdn.jsdelivr.net/npm/vue2(若链接失效可去vue官网寻找) CTRLS即可下载保存 文件目录结构 二、使用操作原生DOM与使用VUE操作DOM的便捷性比较…...
Java大厂硬核面试:Flink流处理容错、Pomelo JVM调优、MyBatis二级缓存穿透防护与Kubernetes服务网格实战解析
第二幕:系统架构设计 面试官:设计一个处理10万QPS的秒杀系统需要的技术方案和技术选型 xbhog:采用基础架构: 存储层:Redis限流分布式锁服务层:Sentinel流量控制消息层:RocketMQ事务消息保证最…...
Python实现简易博客系统
下面我将介绍如何使用Python实现一个简易的博客系统,包含前后端完整功能。这个系统将使用Flask作为Web框架,SQLite作为数据库,并包含用户认证、文章发布、评论等基本功能。 1. 系统架构设计 技术栈选择 后端:Flask (Python Web框架)数据库:SQLite (轻量…...
【T型三电平仿真】SPWM调制
自然采样法和规则采样法的特点和计算 https://blog.csdn.net/u010632165/article/details/110889621 单极性和双极性的单双体现在什么地方 单极性和双极性的单双是指载波三角波的极性 为什么simulink进行电路仿真时,都需要放置一个powergui模块 任何使用SimPow…...
Astral Ascent 星界战士(星座上升) [DLC 解锁] [Steam] [Windows SteamOS macOS]
Astral Ascent 星界战士(星座上升) [DLC 解锁] [Steam] [Windows & SteamOS & macOS] 需要有游戏正版基础本体,安装路径不能带有中文,或其它非常规拉丁字符; DLC 版本 至最新全部 DLC 后续可能无法及时更新文章…...
Ubuntu20.04如何优雅的安装ROS 1(胎教级教程)
1、USTC的源: sudo sh -c . /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ lsb_release -cs main" > /etc/apt/sources.list.d/ros-latest.list2、设置的ROS源添加密钥: sudo apt-key adv --keyserver …...
terraform生成随机密码
在 Terraform 中生成安全随机密码可以通过 random_password 资源实现,以下是完整实现方案及安全实践: 基础实现 (生成随机密码) terraform {required_providers {random {source "hashicorp/random"version "~> 3.5.1" # 使…...
一个linux系统电脑,一个windows电脑,怎么实现某一个文件夹共享
下载Samba linux主机名字不能超过15个字符 sudo dnf install samba samba-client -y 创建共享文件夹 sudo mkdir /shared 配置文件 vim /etc/samba/smb.conf [shared] path /shared available yes valid users linux电脑用户 read only no browsable yes p…...
等保系列(一):网络安全等级保护介绍
一、基本概念 网络安全等级保护(以下简称:等保)是根据《中华人民共和国网络安全法》及配套规定(如《信息安全技术 网络安全等级保护基本要求》等)建立的系统性安全防护机制,要求网络运营者根据信息系统的重…...
【专题五】位运算(2)
📝前言说明: 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;ÿ…...
【2025五一数学建模竞赛A题】 支路车流量推测问题|建模过程+完整代码论文全解全析
你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 作为经验丰富的美赛O奖、国赛国一的数学建模团队,我们将为你带来本次数学建模竞赛的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解析,…...
案例:自动化获取Web页面小说(没钱修什么仙)——selenium
目录 前言一、目标即结果1. 目标:2. 提前了解网页信息3. 结果 二、逐步分析1 . selenium启动2. 获取所有章节3.打开对应章节链接,获取小说文本4. 内容写入本地文件 三、完整代码四、声名 前言 提示:通过案例掌握selenium语法 涉及技术&#…...
硬件工程师面试常见问题(11)
第五十一问:器件手册的翻译题目 要学英语啊,孩子。 第五十二问:二极管三极管常识题 1.二极管的导通电压一般是 0.7V 2.MOS管根据掺杂类型可以分为 NMOS和PMOS 3.晶体三极管在工作时,发射结和集电结均处于正向偏置,该晶体管工作在一饱和态。…...
TTL、LRU、LFU英文全称及释义
以下是 TTL、LRU 和 LFU 的英文全称及其简要解释: 1. TTL 全称:Time To Live(存活时间)含义: 表示数据在缓存或存储中的有效存活时间,过期后自动删除。 Redis 示例:SET key value EX 60&#x…...
本地部署 n8n 中文版
本地部署 n8n 中文版 0. n8n的核心价值1. 本地部署 n8n 中文版2. 访问 n8n 在技术团队寻求高效自动化解决方案的今天,n8n 作为一款安全的工作流自动化平台脱颖而出!它将代码的灵活性与低代码的便捷性深度融合,为开发者提供了独特的工具选择。…...
蓝桥杯比赛
蓝桥杯全国软件和信息技术专业人才大赛是由工业和信息化部人才交流中心主办,国信蓝桥教育科技(北京)股份有限公司承办的计算机类学科竞赛。以下是其相关信息: 参赛对象 具有正式全日制学籍且符合相关科目报名要求的研究生、本科生…...
【Linux】Makefile
Makefile常用用法介绍。 部分图片和经验来源于网络,还有正点原子的Linux驱动开发教程,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。 专栏目录:记录自己的嵌入式学习之路-CSDN博客 1…...
【工具】Windows批量文件复制教程:用BAT脚本自动化文件管理
一、引言 在日常开发与部署过程中,文件的自动化复制是一个非常常见的需求。无论是在构建过程、自动部署,还是备份任务中,开发者经常需要将某个目录中的 DLL、配置文件、资源文件批量复制到目标位置。相比使用图形界面的复制粘贴操作…...
字节一面:后端开发
前言 这是我字节一面的回忆录,可能有些不全。 由于博主是Java面试Go岗,操作系统和计网问的还是比较多。 个人感觉字节很喜欢追问,博主被追问拷打的找不到北了,总结还是学的太浅了。 面试官给我的建议:再更深挖一些…...
西式烹饪实训室建设路径
在餐饮行业持续变革与教育信息化快速发展的当下,西式烹饪实训室的智能化建设成为提升教学质量、培养适应新时代需求烹饪人才的关键举措。通过引入先进技术,创新教学与管理模式,为学生打造更高效、更具沉浸感的学习环境。凯禾瑞华——实训室建…...
[更新完毕]2025五一杯A题五一杯数学建模思路代码文章教学:支路车流量推测问题
完整内容请看文章最下面的推广群 支路车流量推测问题 摘要 本文针对支路车流量推测问题展开研究,通过建立数学模型解决不同场景下的车流量分析需求。 针对问题一(Y型道路场景),研究两支路汇入主路的车流量推测。通过建立线性增长…...
2025年五一杯C题详细思路分析
C题 社交媒体平台用户分析问题 问题背景 近年来,社交媒体平台打造了多元化的线上交流空间和文化圈,深刻影响着人们社交互动与信息获取。博主基于专业知识或兴趣爱好等创作出高质量内容,吸引并获得用户的关注。用户可以随时通过观看、点赞、…...