C语言基础知识09---文件操作
目录
文件操作
1.1 文件操作
1.2 文件操作的数据传输形式
1.3 文件操作的分类
1.4 文件存储格式
1.5 文件流指针
1.6 函数名:fopen()
1.7 函数名:fclose()
1.8 函数名:fprintf()
1.9 函数名:fscanf()
1.10 函数名:fseek()
1.11 函数名:feof()
1.12 示例
1.13 练习
1.14 函数名:fwrite()
1.15 函数名:fread()
1.16 函数名:ftell()
1.17 函数名:rewind()
1.18 函数名:fputs()
1.19 函数名:fgets()
1.20 函数名:fputc()
1.21 函数名:fgetc()
1.22 函数名:remove()
文件操作
1.1 文件操作
1.创建、打开文件---默认情况下光标在文件开头,也可以采用追加,光标在文件末尾
2.读写---通过光标进行定位,光标会跟随移动,写入内容只有覆盖模式
3.关闭文件
1.2 文件操作的数据传输形式
数据的写入:从内存到硬盘
数据的读取:从硬盘到内存
1.3 文件操作的分类
基于缓冲区的文件操作---高级IO---基于低级IO实现的函数封装
基于非缓冲区的文件操作---低级IO---Linux系统编程阶段---内核函数
1.4 文件存储格式
Linux文件类型:d - p l s c b
文件后缀:文件的打开方式
文件存储格式:ASSIC码存储、二进制存储
1.5 文件流指针
FILE *fp;
文件打开成功后,fp在后续操作中就代表该文件
1.6 函数名:fopen()
函数原型:FILE *fopen(const char *pathname, const char *mode);
函数功能:打开文件
函数参数:const char *pathname:路径/文件名的字符串
const char *mode:打开方式,填入常量字符串
r 读 打开旧文件
w 写 创建新文件
a 追加 打开旧文件/创建新文件
+ 扩展功能
“r” 只读 “r+” 读写
“w” 只写 “w+” 读写
函数返回值:打开成功,返回文件流指针,打开失败,返回 NULL
函数使用:
FILE *fp = fopen(“./1.txt”, “w+”);
1.7 函数名:fclose()
函数原型:int fclose(FILE *stream);
函数功能:关闭文件
函数参数:FILE *stream:文件流指针
函数返回值:成功返回 0,失败返回 EOF/-1
函数使用:
fclose(fp);
1.8 函数名:fprintf()
函数原型:int fprintf(FILE *stream, const char *format, ...);
函数功能:格式化写入
函数参数:FILE *stream:文件流指针
const char *format, ... :同 printf()
函数返回值:输出的字符个数
函数使用:
fprintf(fp, “hello\n”);
1.9 函数名:fscanf()
函数原型:int fscanf(FILE *stream, const char *format, ...);
函数功能:格式化读取
函数参数:FILE *stream:文件流指针 const char *format, ... :同 scanf()
函数返回值:返回值返回格式控制符获取到的数据个数
函数使用:
1.10 函数名:fseek()
函数原型:int fseek(FILE *stream, long offset, int whence);
函数功能:移动光标
函数参数:FILE *stream:文件流指针
long offset:偏移量 正数向后偏移 负数向前偏移
int whence:基准位置
0 文件开头 SEEK_SET
1 当前位置 SEEK_CUR
2 文件末尾 SEEK_END
函数返回值:成功返回 0,失败返回-1
函数使用:
fseek(fp,0,0);
fseek(fp,-2,2);
1.11 函数名:feof()
函数原型:int feof(FILE *stream);
函数功能:判断光标是否在文件末尾
函数参数:FILE *stream:文件流指针
函数返回值:如果在末尾是非 0,不在末尾是 0
函数使用:
while(a[i]!=0)
while(feof(fp)==0) 判断光标是否在文件末尾
{
fscanf();
}
1.12 示例
#include <stdio.h>
#include <string.h>
int main()
{char path[30] = {0};printf("输入文件名:\n");gets(path);FILE *fp = fopen(path, "w+"); if(fp == NULL){perror("fopen");return 0;}fprintf(fp, "hello\n");char a[30] = {0};scanf("%s", a);fprintf(fp, "%s\n", a);//rewind(fp);fseek(fp, -(strlen(a)+1), SEEK_CUR);char b[30] = {0};fscanf(fp, "%s\n", b);printf("%s\n", b);char c[30] = {0};fscanf(fp, "%s\n", c);printf("%s\n", c);fclose(fp);return 0;
}
1.13 练习
1. 向文件 stu.xlsx 中写入几个姓名学号
比如:
张三 1
李四 2
#include <stdio.h>
int main()
{FILE *fp = fopen("./stu.xlsx", "w");if(fp == NULL){perror("fopen");return 0;}fprintf(fp, "%s\t%d\n", "张三", 1);fprintf(fp, "%s\t%d\n", "李四", 2);fclose(fp);return 0;
}
2. 从文件中把信息读取出来保存到数组中,然后打印
#include <stdio.h>
struct info{char name[20];int id;
};
struct info stu[50];
int main()
{FILE *fp = fopen("./stu.xlsx", "r");if(fp == NULL){perror("fopen");return 0;}//rewind(fp);fseek(fp, 0, 0);int i = 0;while(feof(fp) == 0){fscanf(fp, "%s\t%d\n", \stu[i].name, &stu[i].id);i++;}for(int j=0; j<i; j++){printf("%s\t%d\n", \stu[j].name, stu[j].id);}fclose(fp);return 0;
}
1.14 函数名:fwrite()
函数原型:size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);
函数功能:块写
函数参数:const void *ptr:数据块的起始地址
size_t size:数据块大小
size_t nmemb:数据块数量
FILE *stream:文件流指针
函数返回值:返回写入的块数量
函数使用:
#include <stdio.h>
int main()
{FILE *fp =fopen("9.txt","w+");if(fp == NULL){perror("fopen");return 0;}int a[5]={1,2,3,4,5};fwrite(a,10,2,fp);fclose(fp);return 0;
}
1.15 函数名:fread()
函数原型:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
函数功能:块读
函数参数:const void *ptr:数据块的起始地址
size_t size:数据块大小
size_t nmemb:数据块数量
FILE *stream:文件流指针
函数返回值:返回读取的块数量
函数使用:
#include <stdio.h>
int main()
{FILE *fp =fopen("9.txt","r+");if(fp == NULL){perror("fopen");return 0;}fseek(fp,4,SEEK_SET);int a[5]={0};fread(a,2,10,fp);for(int i=0;i<5;i++){printf("%d\n",a[i]);}fclose(fp);return 0;
}
1.16 函数名:ftell()
函数原型:long ftell(FILE *stream);
函数功能:用于定位光标当前所在位置
函数参数:FILE *stream:文件流指针
函数返回值:返回光标当前所在位置(距离文件开头的字节数)
函数使用:
ftell(fp);
1.17 函数名:rewind()
函数原型:void rewind(FILE *stream);
函数功能:把光标移动到文件开头
函数参数:FILE *stream:文件流指针
函数返回值:无
函数使用:
rewind(fp); == fseek(fp,0,0);
1.18 函数名:fputs()
函数原型:int fputs(const char *s, FILE *stream);
函数功能:向文件写入一个字符串
函数参数:const char *s:字符串首地址
FILE *stream:文件流指针
函数返回值:字符串的字符个数
函数使用:
1.19 函数名:fgets()
函数原型:char *fgets(char *s, int size, FILE *stream);
函数功能:从文件读取 size-1 个字符,字符串形式
函数参数:char *s:字符串保存的位置
int size:读取的字符个数(因为是获取字符串,所以会消耗一个空间保存’\0’)
FILE *stream:文件流指针
函数返回值:成功返回 s 的值
函数使用:
#include <stdio.h>
int main()
{FILE *fp =fopen("10.txt","w+");if(fp == NULL){perror("fopen");return 0;}
char a[10]="hello";fputs(a,fp);char buff[10]={0};rewind(fp);fgets(buff,6,fp);puts(buff);char b[30]={0};fgets(b,30,stdin);fputs(b,stdout);fclose(fp);return 0;
}
1.20 函数名:fputc()
函数原型:int fputc(int c, FILE *stream);
1.21 函数名:fgetc()
函数原型:int fgetc(FILE *stream);
1.22 函数名:remove()
函数原型:int remove(const char *pathname);
函数功能:删除文件
相关文章:
C语言基础知识09---文件操作
目录 文件操作 1.1 文件操作 1.2 文件操作的数据传输形式 1.3 文件操作的分类 1.4 文件存储格式 1.5 文件流指针 1.6 函数名:fopen() 1.7 函数名:fclose() 1.8 函数名:fprintf() 1.9 函数名:fscanf() 1.10 函数名&…...
GRS认证的主要步骤是什么?
GRS认证的具体步骤,是一个严谨而系统的过程,旨在确保产品从原料来源到最终消费的每一个环节都符合全球回收标准(Global Recycle Standard,简称GRS)的严格要求。 首先,企业需要向GRS认证机构提交申请&#…...
探究 CSS 如何在HTML中工作
2025/3/28 向全栈工程师迈进! 一、CSS的作用 简单一句话——美化网页 <p>Lets use:<span>Cascading</span><span>Style</span><span>Sheets</span> </p> 对于如上代码来说,其显示效果如下࿱…...
软件工程面试题(七)
1、DAO设计模式及DELEGATE模式 DAO(Data Access Object)模式实际上是两个模式的组合,即Data Accessor 模式和 Active Domain Object 模式,其中 Data Accessor 模式实现了数据访问和业务逻辑的分离,而Active Domain Object 模式实现了业务数据的对象化封装,一般我们将这两…...
AfxMessageBox()如何显示string字符串
书籍:《Visual C 2017从入门到精通》的2.7 字符串 环境:visual studio 2022 内容:几个字符串类型->(将单字节char*转换为宽字节wchar_t *) 在 MFC 中,AfxMessageBox 默认支持显示 CString 或宽字符字符…...
基于 kubekey -实现懒人一键部署K8S集群
基于 kubekey -实现懒人一键部署K8S集群 操作步骤 官网: https://kubesphere.io/zh/ 一、执行以下命令快速创建一个 Kubernetes 集群。 Master节点 如果您访问 GitHub/Googleapis 受限,请登录 Linux 主机,执行以下命令设置下载区域。 [roott…...
19款超级华丽动画的图片轮播HTML5+CSS3模板源码
大家好,我是分享源码和设计思想的程序媛, 今天给大家分享一个 19款超级华丽动画的图片轮播HTML5CSS3模板源码。 纯CSS3HTML5代码实现,没有任何其它杂乱的框架东西。 图片演示 1. 3D立方体轮播效果 2. 视差滚动轮播效果 3. 卡片堆叠轮播效果 4…...
第十六:redis 的 帖子投票要点
ZADD orders 100 order1 ZADD orders 200 order2 ZADD orders 300 order3 zadd myzset 100 nameorder // 添加一个有序集合 其中存储了用户的订单信息,每个订单用一个唯一的 ID 表示 ZSCORE myzset nameorder // myzset 是key nameorder 是成员ÿ…...
51c深度学习~合集4
我自己的原文哦~ https://blog.51cto.com/whaosoft/12327892 #robustlearn 本文提出了「鲁棒关键微调」,通过「微调」对抗训练模型的「非鲁棒关键性模块」,充分利用其冗余能力提升泛化性。 对抗训练(Adversarail Training)…...
解决Vmware 运行虚拟机Ubuntu22.04卡顿、终端打字延迟问题
亲测可用 打开虚拟机设置,关闭加速3D图形 (应该是显卡驱动的问题,不知道那个版本的驱动不会出现这个问题,所以干脆把加速关了)...
Arduino硬件控制开发基础资料
Arduino 的程序可以划分为三个主要部分:结构、变量(变量与常量)、函数。 结构部分 一、结构 1.1 setup() 1.2 loop() 二、结构控制 2.1 if 2.2 if...else 2.3 for 2.4 switch case 2.5 while 2.6 do... while 2.7 break 2.8 cont…...
地图项目入手学习
如果你目前对自己的地图项目实现原理不太了解,周末可以通过以下方法进行高效学习: ⸻ 第一步:梳理项目相关代码(3 小时) 目标:先大致了解你的地图项目代码,找到核心实现逻辑。 具体做法&…...
OpenCV图像处理:边缘检测
文章目录 前言一、什么是边缘检测?二、算法分类1、Sobel算子2、Scharr算子3、Canny边缘检测3.1 Canny检测的优点3.2 Canny 边缘检测分为 4 个部分3.2.1 、图像降噪3.2.2 、梯度计算3.2.3 、非极大值抑制3.2.4 、双阈值边界跟踪 4、算法比较 三、代码实现总结 前言 …...
性能测试~
1.什么是性能测试 1.什么是性能 就像这两个车一样,虽然都是代步工具,构造都是一样的,但是路虎的发动机要比捷达好.路虎的百米加速却是比捷达快的,我们就知道路虎的性能要比捷达好 . 那么什么是软件的性能呢?我们分析一下 2.常见的性能测试指标 2.1并发数 并发数是指在同一…...
pagehelper 分页插件使用说明
pom.xml:pageHelper坐标 <!--pageHelper坐标--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</version></dependency> 分…...
使用crypto-js进行DES加/解密
crypto-js 官方网站:https://github.com/brix/crypto-js 中文参考教程:前端加密JS库–CryptoJS 使用指南 在线加解密网站:https://www.mklab.cn/utils/des 首先要安装crypto-js库,根据自己使用的方式按照官方网站步骤进行即可。 …...
【图片识别Excel表格】批量将图片上的区域文字识别后保存为表格,基于WPF和阿里云的项目实战总结
一、项目背景 在信息处理和文档管理中,经常会遇到需要从大量图片中提取文字并进行整理的场景。例如,财务部门需要从大量报销票据中提取金额、日期等信息;法务部门需要从合同文档中提取关键条款;教育行业需要从试卷中提取学生的答题内容等。传统的手工处理方式不仅耗时长、…...
在 i.MX8MP 上用 C++ 调用豆包 AI 大模型实现图像问答
本文介绍了如何在 i.MX8MP 嵌入式平台上使用 C 调用豆包 AI 大模型(Doubao-vision-pro-32k)进行图像问答。我们将详细讲解代码实现的各个步骤,包括文件读取、Base64 编码、构造 JSON 请求体、使用 libcurl 进行 HTTP POST 请求以及解析响应数…...
uni-app自动升级功能
效果图 一、VUE login.vue <template><view><view class"uni-common-mt"><view class"uni-flex uni-column"><view class"flex-item flex-item-V"><view class"logo"><image src"/st…...
线性回归 + 基础优化算法
线性回归 线性回归是机器学习最基础的模型,也是理解后续所有深度学习的基础。 线性模型可以看做是单层神经网络。 上述有个0.5是在求导的时候可以很方便的将2消去。 实际上,这里的数据样本受限很大,比如地球上房子就那么多,肯…...
MyBatis分页插件混用问题解析:IPage与PageHelper的冲突与解决
一、背景 在同时使用 MyBatis-Plus 的 IPage 分页 和 PageHelper 时,开发者可能会遇到以下两类问题: 分页结果异常:IPage 查询的 total 总条数返回 0,但实际数据正常。依赖冲突报错:启动时报错 Column.withColumnNam…...
4.Socket类、InetAddr类、Epoll类实现模块化
目录 1. InetAddr类 类定义 代码说明 类实现 2.Socket类 类定义 类实现 3. Epoll类 类定义 构造与析构函数 方法实现 类实现 4. 使用模块化设计 示例使用(main.cpp) 5. 运行程序 随着程序复杂度的增加,单一的面向过程的代码会变得难以理…...
19 python 模块
在办公室的日常工作中,我们常常会用到各种各样的工具,像计算器用于计算数据、打印机用来打印文件、订书机将纸张装订成册等。这些工具会被反复使用,而且不同的工具具有不同的功能。 一、模块的定义 在 Python 里,模块就如同一个…...
医疗智能体通信整合-大模型训练中沟通优化策略研究
一、引言:医疗模型训练的沟通困境 1.1 医疗 AI 发展背景 在数智化浪潮的推动下,医疗 AI 正以前所未有的速度融入现代医疗体系。从智能影像诊断助力医生精准识别病灶,到基于大数据分析的个性化药物研发,医疗 AI 在提升医疗效率、改善医疗质量方面展现出巨大潜力。据相关数据…...
LearnOpenGL-笔记-其六
今天我们来聊一些更深入的东西: Depth Testing 在之前的学习过程中,我们有接触过深度缓冲,彼时的深度缓冲的意义就是可以让我们体现出深度的差异从而达到立体的效果,而现在我们将在深度缓冲的基础进一步扩展,进行深度…...
【商城实战(91)】安全审计与日志管理:为电商平台筑牢安全防线
【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配…...
Windows 10更新失败解决方法
在我们使用 Windows 时的时候,很多时候遇到系统更新 重启之后却一直提示“我们无法完成更新,正在撤销更改” 这种情况非常烦人,但其实可以通过修改文件的方法解决,并且正常更新到最新版操作系统 01修改注册表 管理员身份运行注…...
【安当产品应用案例100集】042-基于安当KADP实现机密文件安全流转
一、客户需求 某集团公司客户,在系统业务流中,存在大量的内部文件流转的需求。内部业务文件有不同的安全密级,最初在文件流转时,公司内部规定点对点的文件传输,要使用加密工具加密后再发给需要的一方。这种方式虽然能…...
【网络】Socket套接字
目录 一、端口号 二、初识TCP/UDP协议 三、网络字节序 3.1 概念 3.2 常用API 四、Socket套接字 4.1 概念 4.2 常用API (1)socket (2)bind sockaddr结构 (3)listen (4)a…...
蓝桥杯[每日一题] 真题:连连看
题目描述 小蓝正在和朋友们玩一种新的连连看游戏。在一个 n m 的矩形网格中,每个格子中都有一个整数,第 i 行第 j 列上的整数为 Ai, j 。玩家需要在这个网格中寻找一对格子 (a, b) − (c, d) 使得这两个格子中的整数 Aa,b 和 Ac,d 相等,且它…...
新手SEO优化实战快速入门
内容概要 对于SEO新手而言,系统化掌握基础逻辑与实操路径是快速入门的关键。本指南以站内优化为切入点,从网站结构、URL设计到内链布局,逐层拆解搜索引擎友好的技术框架;同时聚焦关键词挖掘与内容策略,结合工具使用与…...
Android面试总结之Glide源码级理解
当你的图片列表在低端机上白屏3秒、高端机因内存浪费导致FPS腰斩时,根源往往藏在Glide的内存分配僵化、磁盘混存、网络加载无优先级三大致命缺陷中。 本文从阿里P8级缓存改造方案出发,结合Glide源码实现动态内存扩容、磁盘冷热分区、智能预加载等黑科技&…...
基于类型属性的重载
算法重载 在一个泛型算法中引入更为特化的变体,这种设计和优化方式称为算法特化。之所以需要算法特化,原因有二: 针对特定类型使用更加合理的实现,对于const char *,less的第二个实现更加合理 template <typename…...
对称加密算法和非对称加密算法
在这个互联网普及的时代,在不同终端对敏感甚至机密数据进行传输是非常常见的场景,但是如何保证数据传输过程的安全性和高效性是一个值得深入探讨的问题。 为此,伟大的人类研究出了多种加密算法,我们可以大致将其分为两类…...
工程数字建造管理系统平台有哪些?好的数字建造管理系统推荐
一、什么是工程数字建造管理系统平台? 工程数字建造管理系统平台是一种集成了先进信息技术(如云计算、大数据、物联网等)的综合性管理工具,它旨在通过数字化手段提升工程建造全过程的管理效率和决策水平。这一平台不仅覆盖了工程…...
CMake ERROR: arm-none-eabi-gcc is not able to compile a simple test program.
用 cmake 构建 STM32 工程问题【已解决】 环境信息 os: ubuntu22.04gcc: arm-none-eabi-gcc (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 13.2.1 20231009cmake: cmake version 3.22.1ninja: 1.10.1 问题 log [main] 正在配置项目: Olidy [driver] 删除 /home/pomegr…...
容器主机CPU使用率突增问题一则
关键词 LINUX、文件系统crontab 、mlocate根目录使用率 There are many things that can not be broken! 如果觉得本文对你有帮助,欢迎点赞、收藏、评论! 一、问题现象 业务一台容器服务器,近期经常收到cpu不定期抖动告警&#x…...
CTFshow【命令执行】web29-web40 做题笔记
web29----过滤关键字 正则匹配,过滤flag,可以使用通配符绕过 先查看目录 使用通配符?查看flag 点击查看源代码 web30---过滤函数和关键字 看到过滤了system执行系统命令和flag,php关键字 找一个与其功能差不多的执行函数passthr…...
L2正则化:优化模型的平滑之道
常见的正则化方法1. **L1正则化(Lasso)**1.1基本原理1.2特点1.3数学推导1.4参数更新1.5选择合适的正则化系数1.6优点1.7缺点1.8实际应用中的注意事项1.9示例 2. **L2正则化(Ridge)**L2正则化的定义L2正则化如何防止过拟合1. **限制…...
Golang 的 GMP 调度机制常见问题及解答
文章目录 Golang GMP 调度模型详解常见问题基础概念1. GMP 各组件的作用是什么?2. 为什么 Go 需要自己的调度器?3. GOMAXPROCS 的作用是什么? 调度流程4. Goroutine 如何被调度到 M 上执行?5. 系统调用会阻塞整个线程吗࿱…...
使用VSCODE导致CPU占用率过高的处理方法
1:cpptools 原因:原因是C/C会在全局搜索文件,可以快速进行跳转;当打开的文件过大,全局搜索文件会占用大量CPU; 处理方法: 1:每次只打开小文件夹; 2:打开大文…...
17--华为防火墙智能选路全解:网络世界的智能导航系统
华为防火墙智能选路全解:网络世界的智能导航系统 开篇故事:快递小哥的烦恼与网络世界的相似性 想象你是个快递站站长,每天要处理来自全国各地的包裹。突然某天遇到: 🚚 双11爆仓:如何把包裹最快送到客户手…...
CSS-BFC(块级格式化上下文)
一、BFC 的本质理解(快递仓库比喻) 想象一个快递分拣仓库(BFC容器),这个仓库有特殊的规则: 仓库内的包裹(内部元素)摆放不影响其他仓库包裹必须整齐堆叠,不能越界不同仓…...
Java 大视界 -- Java 大数据在智慧港口集装箱调度与物流效率提升中的应用创新(159)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
ZygoPlanner:一种基于图形的三阶段框架,用于颧骨种植体植入的最佳术前规划|文献速递-医学影像人工智能进展
Title 题目 ZygoPlanner: A three-stage graphics-based framework for optimal preoperative planning of zygomatic implant placement ZygoPlanner:一种基于图形的三阶段框架,用于颧骨种植体植入的最佳术前规划 01 文献速递介绍 1.1 研究背景 颧…...
【2.项目管理】2.4 Gannt图【甘特图】
甘特图(Gantt)深度解析与实践指南 📊 一、甘特图基础模板 项目进度表示例 工作编号工作名称持续时间(月)项目进度(周)1需求分析3▓▓▓░░░░░░░2设计建模3░▓▓▓░░░░░░3编码开发3.5░░░▓▓▓▓░░…...
python学习笔记(1)
为什么要学python 目前在研究网站的搭建,想通过python搭建一个我的世界资源买卖的平台,然后就开始研究python了,其实这不是我第一次研究python了,之前学的都不咋样,现在温故而知新,好好研究一下python。 Python的变量 在此之前先简单的介绍一下变量,给第一次接触的小…...
刚刚整理实测可用的股票数据API接口集合推荐:同花顺、雅虎API、智兔数服、聚合数据等Python量化分析各项数据全面丰富
在金融科技高速发展的今天,股票API接口已成为开发者、量化交易者和金融从业者的核心工具之一。它通过标准化的数据接口,帮助用户快速获取实时或历史市场数据,为投资决策、策略回测和金融应用开发提供支持。本文将深入解析股票API的核心功能、…...
2025 年吉林省燃气企业从业人员考试:实用备考攻略与考试提分要点
2025 年吉林省燃气企业从业人员考试报名通过吉林燃气行业管理系统。报名资料包含企业的环保达标证明(燃气行业涉及环保要求)、个人的岗位任职证明等。实用备考攻略是,关注吉林在燃气分布式能源系统建设方面的进展,结合《燃气冷热电…...
dubbo http流量接入dubbo后端服务
简介 dubbo协议是基于TCP的二进制私有协议,更适合作为后端微服务间的高效RPC通信协议,也导致dubbo协议对于前端流量接入不是很友好。在dubo框架中,有两种方式可以解决这个问题: 多协议发布【推荐】,为dubbo协议服务暴…...