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

【Linux文件IO】标准IO详情(1)

目录

一、前言

1.1 文件类型

1.2 流(FILE)介绍

1.3 文本流和二进制流的区别

二、相关API介绍

2.1 fopen

2.2 fclose

2.3 perror

2.4 fgetc

2.5 fputc

2.6 fgets

2.7 fputs

2.8 fread

2.9 fwrite


一、前言

标准IO基于系统IO实现,通过缓冲机制减少系统调用次数,提高效率。缓冲类型包括:

  • 全缓冲:缓冲区满时执行IO操作。
  • 行缓冲:遇到换行符或缓冲区满时执行IO操作(常用于终端)。
  • 无缓冲:立即执行IO操作(如stderr)。

1.1 文件类型

文件类型

格式

常规文件

-

目录文件

d

字符设备文件

c

块设备文件

b

管道文件

p

套接字文件

s

符号链接文件

l

1.2 流(FILE)介绍

标准IO通过FILE结构体管理文件流,包含以下信息:

  • 文件描述符
  • 缓冲区指针
  • 当前读写位置
  • 错误标志位

1.3 文本流和二进制流的区别

平台

文本模式(t

二进制模式(b

Windows

写入\n时自动转换为\r\n

直接读写原始数据

Linux

无转换,统一使用\n

同文本模式

二、相关API介绍

2.1 fopen

函数原型

FILE *fopen(const char *path, const char *mode);

函数功能

打开一个文件

参数说明

path:要打开的文件的路径(绝对、相对)。

mode:

模式

作用

r

只读,文件必须存在。

w

只写,文件存在则清空,不存在则创建。

a

追加,文件不存在则创建。

+(r+ w+ a+)

已读写的方式打开文件,其他就要看+前面的参数。

b(rb wb ab r+b w+b a+b)

使用二进制的形式进行读或者写或者追加

函数返回值

成功时返回流指针,失败返回NULL。

示例

fopen("test.txt", "r+")

注意点

1.打开绝对路径里面的斜杠要两条

FILE *fp = fopen("D:\\tmp\\test.c", "r");

2.2 fclose

函数原型

int fclose(FILE *stream);

函数功能

关闭指定的文件流。

参数说明

stream:要关闭的文件指针。

函数返回值

成功关闭文件时,返回 0。

如果关闭文件失败,返回 EOF(宏定义,通常为 -1)。

示例

fclose(fp);

2.3 perror

函数原型

void perror(const char *s);

函数功能

输出最近一次错误信息到标准错误流(stderr)。

参数说明

s:指向一个以空字符结尾的字符串(C风格字符串)。如果传入 NULL,则只打印错误信息。

函数返回值

无返回值。

示例

#include <stdio.h>
#include <errno.h>int main() {FILE *file = fopen("nonexistent_file.txt", "r");if (file == NULL) {// 打印错误信息perror("Failed to open file");return 1;}// 如果文件打开成功,关闭文件fclose(file);return 0;
}/* 结果 */
如果文件不存在
Failed to open file: No such file or directory

注意点

1.perror会根据全局变量errno来打印错误信息,如果在多线程环境中使用可能会出现错误。建议是用strerror函数结合errno。

2.4 fgetc

函数原型

int fgetc(FILE *fp);

函数功能

从文件中获取一个字符。

参数说明

fp:要操作的文件指针。

函数返回值

成功返回字符的int值,失败或到达文件末尾返回EOF。

示例

FILE* fp = fopen("text.txt", "r");
int ch = fgetc(fp);//这里fgetc的返回值是int类型的。
printf("%c", ch);

2.5 fputc

函数原型

int fputc( int ch, FILE *fp );

函数功能

向文件中写一个字符。

参数说明

ch:要写入的字符,写入的是其低8位。

fp:要写入的文件指针。

函数返回值

成成功返回写入字符,失败返回EOF。

示例

FILE* fp = fopen("text.txt", "w");
fputc('a', fp);
fclose(fp);

2.6 fgets

函数原型

char *fgets(char *s, int size, FILE *stream);

函数功能

从指定的流stream读取一行,并把它存储在str所指向的字符串内。当读取(n-1)个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。

参数说明

s:这是指向一个字符数组的指针,该数组存储了要读取的字符串。

size :这是要读取的最大字符数(包括最后的空字符)。通常是使用以 str 传递的数组长度。

stream:文件指针。

函数返回值

成功返回s,到达文件末尾或未读取到字符返回NULL。

示例

int main() 
{char line[256];FILE* fp = fopen("text.txt", "r+");if (fp == NULL){printf("open failed!");return 0;}/* 从fp文件指针中读取字节读完这一行(\n)或者255字节(256字节补\0)或者到EOP */fgets(line, sizeof(line), fp);printf("%s", line);return 0;}

2.7 fputs

函数原型

int fputs(char * str, FILE *stream);

函数功能

写入字符串(需手动换行)。

参数说明

str :要写入的字符串。

stream :要写入的文件指针。

函数返回值

该函数返回一个非负值,如果发生错误则返回 EOF。

示例

int main() 
{char line[256] = "\nnebula";FILE* fp = fopen("text.txt", "a+");if (fp == NULL){printf("open failed!");return -1;}fputs(line, fp);return 0;
}

2.8 fread

函数原型

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

函数功能

从文件中读取一片内容。

参数说明

ptr:存储读取数据的指针。

size:每个数据项的大小(以字节为单位)。

nmemb:要读取的数据项的个数。

stream:要写入的文件指针。

函数返回值

返回成功读取的数据项的个数。如果返回值小于 count,可能是到达文件末尾或发生错误。

示例

int main() 
{char buff[20] = {0};FILE* fp = fopen("text.txt", "r+");if (fp == NULL){printf("open failed!");fclose(fp);return -1;}fread(buff, sizeof(buff), 1, fp);printf("%s", buff);fclose(fp);return 0;}

2.9 fwrite

函数原型

size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);

函数功能

把数据写到文件里面。

参数说明

ptr:要写入的数据指针。

size:每个数据项的大小(以字节为单位)。

nmemb:要写入的数据项的个数。

stream:这是指向 FILE 对象的指针,该 FILE 对象指定了一个输出流。

函数返回值

返回成功写入的数据项的个数。如果返回值小于 count,则表示写入过程中发生了错误。

示例

int main() 
{char buff[20] = "i eat apple";FILE* fp = fopen("text.txt", "w+");if (fp == NULL){printf("open failed!");fclose(fp);return -1;}fwrite(buff, sizeof(buff), 1, fp);fclose(fp);return 0;}

相关文章:

【Linux文件IO】标准IO详情(1)

目录 一、前言 1.1 文件类型 1.2 流(FILE)介绍 1.3 文本流和二进制流的区别 二、相关API介绍 2.1 fopen 2.2 fclose 2.3 perror 2.4 fgetc 2.5 fputc 2.6 fgets 2.7 fputs 2.8 fread 2.9 fwrite 一、前言 标准IO基于系统IO实现&#xff0c;通过缓冲机制减少系统调…...

店匠科技携手 PayPal 升级支付体验,助力独立站商家实现全球增长

在全球化电商竞争加剧的背景下,独立站为无数商户插上了通向事业成功的翅膀。然而,搭建店铺框架容易,真正实现有效运营却充满挑战。只有当各个环节如齿轮般严丝合缝,独立站运营才能更好地助推行进,实现稳健增长。如今,独立站商家面临着全链路运营的多重挑战。从品牌塑造、营销推…...

使用 Elastic-Agent 或 Beats 将 Journald 中的 syslog 和 auth 日志导入 Elastic Stack

作者&#xff1a;来自 Elastic TiagoQueiroz 我们在 Elastic 一直努力将更多 Linux 发行版添加到我们的支持矩阵中&#xff0c;现在 Elastic-Agent 和 Beats 已正式支持 Debian 12&#xff01; 本文演示了我们正在开发的功能&#xff0c;以支持使用 Journald 存储系统和身份验…...

模板方法模式的C++实现示例

核心思想 模板方法设计模式是一种行为设计模式&#xff0c;它定义了一个算法的框架&#xff0c;并将某些步骤的具体实现延迟到子类中。通过这种方式&#xff0c;模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些步骤。 模板方法模式的核心在于&#xff1a; ​…...

docker无法pull镜像问题解决for win10

docker无法pull镜像问题解决for win10 问题原因分析解决方法 问题 在win10系统上安装好doker-desktop后ping registry-1.docker.io不同&#xff0c;并且也无法登陆hub.docker.com, 使用docker pull xx也无法正常下载 原因分析 hub.docker.com在2024年5月之后&#xff0c;国内…...

Docker数据管理,端口映射与容器互联

1.Docker 数据管理 在生产环境中使用 Docker&#xff0c;往往需要对数据进行持久化&#xff0c;或者需要在多个容器之间进行数据共享&#xff0c;这必然涉及容器的数据管理操作。 容器中的管理数据主要有两种方式&#xff1a; 数据卷&#xff08;Data Volumns&#xff09;&a…...

R语言使用scitable包交互效应深度挖掘一个陌生数据库

很多新手刚才是总是觉得自己没什么可以写的&#xff0c;自己不知道选什么题材进行分析&#xff0c;使用scitable包后这个完全不用担心&#xff0c;选题多到你只会担心你写不完&#xff0c;写得不够快。 今天演示一下使用scitable包深度挖掘一个陌生数据库 先导入R包和数据 li…...

复试难度,西电卓越工程师学院(杭研院)考研录取情况

01、卓越工程师学院各个方向 02、24卓越工程师学院&#xff08;杭研院&#xff09;近三年复试分数线对比 PS&#xff1a;卓越工程师学院分为广研院、杭研院 分别有新一代电子信息技术、通信工程、集成电路工程、计算机技术、光学信息工程、网络信息安全、机械&#xff0c;这些…...

STM32之I2C硬件外设

注意&#xff1a;硬件I2C的引脚是固定的 SDA和SCL都是复用到外部引脚。 SDA发送时数据寄存器的数据在数据移位寄存器空闲的状态下进入数据移位寄存器&#xff0c;此时会置状态寄存器的TXE为1&#xff0c;表示发送寄存器为空&#xff0c;然后往数据控制寄存器中一位一位的移送数…...

linux docker相关指令

1、镜像操作 0&#xff09;、搜索&#xff1a;docker search 镜像名称 1&#xff09;、拉取&#xff1a;docker pull 2&#xff09;、推送&#xff1a;docker push 3&#xff09;、查看&#xff1a;docker images 4&#xff09;、查看所有镜像ID&#xff1a;d…...

信息安全之构建FTP服务器证书

以下是完整的文章&#xff0c;包含所有步骤和最后一节的参考文章部分&#xff1a; 在 Ubuntu 中安装和配置 FTPS 服务器的详细指南 1. 安装 vsftpd 首先&#xff0c;确保你的系统是最新的&#xff0c;然后安装 vsftpd&#xff1a; sudo apt update sudo apt install vsftpd•…...

(更新完)LPZero: Language Model Zero-cost Proxy Search from Zero

LPZero代码 摘要 神经架构搜索 (NAS) 有助于自动执行有效的神经网络搜索&#xff0c;同时需要大量的计算资源&#xff0c;尤其是对于语言模型。零样本 NAS 利用零成本 (ZC) 代理来估计模型性能&#xff0c;从而显着降低计算需求。然而&#xff0c;现有的 ZC 代理严重依赖于深…...

第六次CCF-CSP认证(含C++源码)

第六次CCF-CSP认证 数位之和&#xff08;easy&#xff09;思路及AC代码遇到的问题 开心消消乐&#xff08;easy&#xff09;思路及AC代码 画图&#xff08;mid&#xff09;思路及AC代码 数位之和&#xff08;easy&#xff09; 题目链接 思路及AC代码 既然题目要求我们输出各位…...

Spring Boot框架总结(超级详细)

前言 本篇文章包含Springboot配置文件解释、热部署、自动装配原理源码级剖析、内嵌tomcat源码级剖析、缓存深入、多环境部署等等&#xff0c;如果能耐心看完&#xff0c;想必会有不少收获。 一、Spring Boot基础应用 Spring Boot特征 概念&#xff1a; 约定优于配置&#…...

Dify平台部署记录

安装dify项目 官网地址&#xff1a;http://difyai.com/ github地址&#xff1a;https://github.com/langgenius/dify 下载项目&#xff1a; git clone https://github.com/langgenius/dify.git下载过慢&#xff0c;直接访问网页下载zip压缩包&#xff1a; 解压&#xff0c;…...

c++ 调用 gurobi 库,cmake,mac

gurobi 一般使用 python 调用&#xff0c;官方的培训会议及资料大部分也都基于 python。 由于最近上手了 c&#xff0c;因此想试试 c 怎么调用 gurobi。但我发现&#xff0c;c 调用第三方库比 python 或 java 要复杂不少。python 中直接 import 第三方库&#xff0c;java 加载…...

Redis 发布订阅模式详解:实现高效的消息通信

目录 引言 1. 什么是 Redis 发布订阅模式&#xff1f; 1.1 定义 1.2 核心概念 2. Redis 发布订阅的工作原理 2.1 基本流程 2.2 示例 2.3 频道与模式订阅 3. Redis 发布订阅的使用场景 3.1 实时消息通知 3.2 事件驱动架构 3.3 日志收集与分发 3.4 分布式锁与协调 4…...

React Native 0.76 升级后 APK 体积增大的原因及优化方案

在将 React Native 从 0.71 升级到 0.76 后&#xff0c;打包体积从 40 多 MB 增加到了 80 MB。经过一系列排查和优化&#xff0c;最终找到了解决方案&#xff0c;并将优化过程整理如下。 1. React Native 0.76 体积增大的可能原因 (1) 新架构默认启用 React Native 0.76 默认…...

Java直通车系列14【Spring MVC】(深入学习 Controller 编写)

目录 基本概念 编写 Controller 的步骤和要点 1. 定义 Controller 类 2. 映射请求 3. 处理请求参数 4. 调用业务逻辑 5. 返回响应 场景示例 1. 简单的 Hello World 示例 2. 处理路径变量和请求参数 3. 处理表单提交 4. 处理 JSON 数据 5. 异常处理 基本概念 Cont…...

文章被检测出是AI写的怎么办?

随着人工智能技术的飞速发展&#xff0c;AI辅助写作工具逐渐普及&#xff0c;为学生、科研人员以及创作者带来了诸多便利。然而&#xff0c;随之而来的是对学术诚信和内容原创性的担忧。当文章被检测出是AI写作时&#xff0c;应该如何应对&#xff1f;本文将探讨这一问题&#…...

Linux教学总目录

Linux教学总目录&#xff1a; 1、Linux常见指令 2、Linux权限理解 3、Linux环境基础开发工具使用...

SpringBoot(1)——创建SpringBoot项目的方式

目录 1、idea直接从spring.io官网下载即可 ​编辑2、 自己从spring官网下载再用idea打开 3、Idea从阿里云的官网&#xff08;https://start.aliyun.com&#xff09;下载打开 4、Maven项目改造成springboot项目 我的平台是idea2021 Spring Boot 由 Pivotal 团队开发&#xff…...

Oracle数据恢复:闪回查询

Oracle数据恢复:闪回查询 SQL语法闪回查询:AS OF闪回版本查询:VERSIONS BETWEEN数据恢复示例闪回查询最佳实践应用场景使用限制注意事项最佳实践在误删除业务数据时,Oracle数据库通常支持以下几种数据恢复途径。 闪回查询(Flashback Query):闪回查询通过查询系统的UNDO数…...

LiveCommunicationKit OC 实现

一、实现效果: ‌ LiveCommunicationKit‌是苹果公司在iOS 17.4、watchOS 10.4和visionOS 1.1中引入的一个新框架,旨在优化VoIP通话的交互体验。该框架提供了与...

django中路由配置规则的详细说明

在 Django 中,路由配置是将 URL 映射到视图函数或类视图的关键步骤,它决定了用户请求的 URL 会触发哪个视图进行处理。以下将详细介绍 Django 中路由配置的规则、高级使用方法以及多个应用配置的规则。 基本路由配置规则 1. 项目级路由配置 在 Django 项目中,根路由配置文…...

机器学习基础(4)

超越基于常识的基准 除了不同的评估方法&#xff0c;还应该利用基于常识的基准。训练深度学习模型就好比在平行世界里按下发射火箭的按钮&#xff0c;你听不到也看不到。你无法观察流形学习过程&#xff0c;它发生在数千维空间中&#xff0c;即使投影到三维空间中&#xff0c;…...

技术的魅力与价值

区块链技术正改变公益事业。它能极大提高公益透明度和公信力。通过区块链&#xff0c;每一笔捐款的流向都清晰可查&#xff0c;无法篡改&#xff0c;让捐赠者放心。比如某公益平台利用区块链记录捐赠信息&#xff0c;大家随时能看到善款使用情况。还有些项目用区块链追踪物资发…...

【报错】微信小程序预览报错”60001“

1.问题描述 我在微信开发者工具写小程序时&#xff0c;使用http://localhost:8080是可以请求成功的&#xff0c;数据全都可以无报错&#xff0c;但是点击【预览】&#xff0c;用手机扫描二维码浏览时&#xff0c;发现前端图片无返回且报错60001&#xff08;打开开发者模式查看日…...

[数据结构]并查集--C++版本的实现代码

目录 并查集的基本框架 查找一个元素在哪一个集合 判断两个元素是否在同一个集合 将两个集合进行合并 查询有多少组 测试 大学班级的同学会来自于五湖四海&#xff0c;每个人的家乡可能都不相同&#xff0c;那么如何将相同省份的同学连接到一块&#xff0c;也就是按省份进…...

随机森林:强大的集成学习算法

引言 在机器学习领域&#xff0c;随机森林&#xff08;Random Forest&#xff09;是一种非常流行的集成学习算法。它通过构建多个决策树并将它们的结果进行集成&#xff0c;能够有效提高模型的准确性和鲁棒性。随机森林广泛应用于分类、回归、特征选择等任务&#xff0c;因其简…...

C# 实现 AI SSE (Server-Sent Events)接口方式输出(对接AI模型API)

以下是一个使用 C# 实现接收 SSE&#xff08;Server-Sent Events&#xff09;接口数据、进行数据修改解析&#xff0c;然后再以 SSE 方式输出给前端的示例代码。 using System; using System.IO; using System.Net; using System.Text; using System.Threading.Tasks; using M…...

企业招聘能力提升之道:突破困境,精准纳才

企业招聘能力提升之道&#xff1a;突破困境&#xff0c;精准纳才 在企业运营的广袤版图中&#xff0c;招聘工作无疑是一块至关重要的拼图。然而&#xff0c;不少企业在这片领域中举步维艰&#xff0c;尽管投入了海量的时间与精力&#xff0c;收获的成果却不尽人意。面试环节仿…...

[数据结构]堆详解

目录 一、堆的概念及结构 二、堆的实现 1.堆的定义 2堆的初始化 3堆的插入 ​编辑 4.堆的删除 5堆的其他操作 6代码合集 三、堆的应用 &#xff08;一&#xff09;堆排序&#xff08;重点&#xff09; &#xff08;二&#xff09;TOP-K问题 一、堆的概念及结构 堆的…...

KafkaRocketMQ

Kafka 消息生产与消费流程 1. 消息生产 生产者创建消息&#xff1a; 指定目标 Topic、Key&#xff08;可选&#xff09;、Value。可附加 Header 信息&#xff08;如时间戳、自定义元数据&#xff09;。 选择分区&#xff08;Partition&#xff09;&#xff1a; 若指定 Key&am…...

DeepSeek Kimi详细生成PPT的步骤

以下是使用 DeepSeek 和 Kimi 协作生成 PPT 的详细步骤&#xff0c;结合了两者的优势实现高效创作&#xff1a; 第一步&#xff1a;使用 DeepSeek 生成 PPT 大纲或内容 明确需求并输入提示词 在 DeepSeek 的对话界面中&#xff0c;输入具体指令&#xff0c;要求生成 PPT 大纲或…...

HTTP和HTTPS

一.介绍HTTP HTTP全称为超文本传输协议&#xff0c;是一种应用非常广泛的应用层协议。目前&#xff0c;主流使用的HTTP版本是HTTP1.1和HTTP2.0&#xff0c;在这边文章中&#xff0c;讨论的是HTTP1.1。 使用浏览器&#xff0c;打开手机上的APP或者是后端程序&#xff0c;都是分布…...

应急响应--流量分析

&#xff08;一&#xff09;Cobalt Strike流量特征分析 1.HTTP特征 源码特征&#xff1a; 在流量中&#xff0c;通过http协议的url路径&#xff0c;在checksum8解密算法计算后&#xff0c;32位的后门得到的结果是92&#xff0c;64位的后门得到的结果是93&#xff0c;该特征符…...

docker 学习

在docker中通常需要使用ADD等命令复制附件&#xff0c;同时也需要使用其他命令操作原始镜像中的内容&#xff0c;会导致原文文件被覆盖后缺少执行权限&#xff0c;比如&#xff1a; sqlmapapi: ERROR (file is not executable) 或者XXX&#xff1a; ERROR (file is not execu…...

C++时间复杂度详解

一、时间复杂度核心概念 1.1 为什么要研究时间复杂度 当处理大规模数据时&#xff08;如计算斐波那契数列第57项&#xff09;&#xff0c;不同算法效率差异巨大&#xff1a; 递推解法&#xff1a;0.23秒完成 递归解法&#xff1a;需要2369秒&#xff08;约40分钟&#xff09…...

【WPF】Slider滑动方法(INotifyPropertyChanged、ValueChanged )响应速度对比分析

一、Slider基础用法 在 XAML 中添加一个 Slider 控件&#xff0c;并设置其基本属性&#xff1a; <Slider Minimum"0" <!-- 最小值 -->Maximum"100" <!-- 最大值 -->Value"50" <!-- 初始值 -->Width&quo…...

PgSql 操作技巧

1、查询数据导出csv数据 \COPY (SELECT w.* from t_sys_warn w ) TO /home/cuadmin/warn_output.csv WITH CSV HEADER;2、导出sql Insert语句 pg_dump -U 用户名 -h 主机名 -p 端口号 -d 数据库名 --inserts -t 表名 > 导出文件.sqlpg_dump -U username -d dbname -t tabl…...

高效自动化测试:打造Python+Requests+Pytest+Allure+YAML的接口测试框架

一、背景 在快节奏的开发周期中&#xff0c;如何确保接口质量&#xff1f;自动化测试是关键。通过构建标准化、可复用的测试框架&#xff0c;能显著提升测试效率与准确性&#xff0c;为项目质量保驾护航[1][7]。 二、目标 ✅ 核心目标&#xff1a; ● 实现快速、高效的接口测试…...

设计模式文章汇总-Golang语言实现

Golang学习笔记_27——单例模式 Golang学习笔记_28——工厂方法模式 Golang学习笔记_29——抽象工厂模式 Golang学习笔记_30——建造者模式 Golang学习笔记_31——原型模式 Golang学习笔记_32——适配器模式 Golang学习笔记_33——桥接模式 Golang学习笔记_34——组合模式 Gola…...

深度学习PyTorch之13种模型精度评估公式及调用方法

深度学习pytorch之22种损失函数数学公式和代码定义 深度学习pytorch之19种优化算法&#xff08;optimizer&#xff09;解析 深度学习pytorch之4种归一化方法&#xff08;Normalization&#xff09;原理公式解析和参数使用 深度学习pytorch之简单方法自定义9类卷积即插即用 实时…...

c#面试题整理4

1.stirng str"",string strnull&#xff0c;俩者有何区别 空字符串占有存储控件&#xff0c;null不占用 2.class与struct的异同 异同class 可继承 引用类型 1.都可以定义方法字段 2.都可实例化&#xff0c;与类的使用几乎一样 struct 不可继承 值类型 只能声明带…...

游戏辅助技术培训班教程【A001-初级班】

课程概述&#xff1a; 本教程为游戏辅助技术培训班的初级班课程&#xff0c;本章为第二阶段&#xff0c;旨在帮助学员系统掌握游戏辅助技术的核心技能。课程内容从C/C编程基础到高级内存操作、代码注入、DLL注入及MFC编程&#xff0c;全面覆盖游戏辅助开发的关键知识点。 课程…...

[NewStarCTF 2023 公开赛道]ez_sql1 【sqlmap使用/大小写绕过】

题目&#xff1a; 发现id处可以sql注入&#xff1a; 虽然输入id1;show databases;#没什么回显&#xff0c;但是知道这里是字符型注入了 这次利用sqlmap注入 --dbs&#xff1a;列出所有数据库名字 python .\sqlmap.py -u http://a40b2f0a-823f-4c99-b43c-08b94ed0abb2.node5.…...

SSTI注入笔记

文章目录 基础知识SSTI利用条件验证SSTI是否存在验证console码SSTI类引用机制过滤的绕过.被过滤下划线被过滤中括号被过滤过滤了{{过滤了单引号或者双引号过滤了数字关键字被过滤 基础知识 python的模块引用&#xff0c;优先引用当前目录下的模块&#xff0c;比如from pwn imp…...

大模型中的剪枝、蒸馏是什么意思?

环境&#xff1a; 剪枝 蒸馏 问题描述&#xff1a; 大模型中的剪枝、蒸馏是什么意思&#xff1f; 解决方案&#xff1a; 大模型的剪枝&#xff08;Pruning&#xff09;和蒸馏&#xff08;Distillation&#xff09;是两种常见的模型优化技术&#xff0c;用于减少模型的大小…...

AI学习记录 - PPO算法草稿

returns 下面是两种方式生成returns的值&#xff0c;第一种好一点 delta计算方式不一样 通过一些计算方式&#xff0c;将未来的一些计算值&#xff0c;赋予到前面去&#xff0c;从而影响将前面的token和后面的token绑定到一起&#xff0c;从而实现每当生成一个tokend…...