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

十二、Linux文件 - fseek函数讲解

目录

一、fseek函数讲解

二、fseek函数实战


一、fseek函数讲解

重定向文件内部的指针

 注:光标 ---- 文件内部的指针

函数原型:

int fseek(FILE *stream,long offset,int framewhere)
  • 参数:
    • stream:文件指针
    • offset:指针的偏移量
    • framewhere:指针偏移起始位置
  • 返回值:重定位成功返回0,否则返回非零

需要注意的是该函数不是重定位文件指针,而是重定位文件内部的指针,让指向文件内部数据的指针移到文件中我们感兴趣的数据上,重定位主要是这个目的。

说明:执行成功,则stream指向fromwhere为基准,偏移offset个字节的位置。执行失败(比方说offset偏移的位置超出了文件大小),则保留原来的stream的位置不变

分别用3个宏:

  • SEEK_SET 即0 文件开头
  • SEEK_CUR 即1 文件当前位置
  • SEEK_END 即2 文件末尾

但不推荐用数字,最好用宏,简言之:

  1. fseek(fp,100L,SEEK_SET);把fp指针移动到离文件开头100字节处;
  2. fseek(fp,100L,SEEK_CUR);把fp指针移动到离文件当前位置100字节处;
  3. fseek(fp,100L,SEEK_END);把fp指针退回到离文件结尾100字节处;

二、fseek函数实战

  1.  执行流程
  2. 代码内容

源代码:

#include <stdio.h>
#include <string.h>
int main()
{FILE *fp = NULL;int nRet = 0;char readBuff[12];memset(readBuff,0,12);char* writeBuff = "hello world!";fp = fopen("mm","r+");//r+if(fp == NULL){printf("open failed!\n");return -1;}printf("open success1\n");nRet = fread(readBuff,4,2,fp);if(nRet <= 0){printf("fread failed!\n");return -3;}printf("read %s\n",readBuff);nRet = fseek(fp,1,SEEK_SET);if(nRet != 0){printf("fseek failed!");return -4;}printf("fseek succeess!\n");nRet = fwrite(writeBuff,4,1,fp);if(nRet <= 0){printf("fwrite failed!");return -4;}printf("fwrite success!\n");nRet = fclose(fp);if(nRet != 0){printf("close failed!\n");return -2;}printf("close success1\n");return 0;
}

相关文章:

十二、Linux文件 - fseek函数讲解

目录 一、fseek函数讲解 二、fseek函数实战 一、fseek函数讲解 重定向文件内部的指针 注&#xff1a;光标 ---- 文件内部的指针 函数原型&#xff1a; int fseek(FILE *stream,long offset,int framewhere) 参数&#xff1a; stream&#xff1a;文件指针offset&#xff1a;…...

Python3.10新特性之match语句示例详解

这篇文章主要为大家介绍了Python3.10新特性之match语句示例详解&#xff0c;有需要的朋友可以借鉴参考下&#xff0c;希望能够有所帮助&#xff0c;祝大家多多进步&#xff0c;早日升职加薪正文在Python 3.10发布之前&#xff0c;Python是没有类似于其他语言中switch语句的&…...

虎牙盈利能力得到改善,但监管风险对其收入产生负面影响

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 监管风险再次成为焦点 过去一段时间&#xff0c;与中概股相关的监管风险再次引起了投资者的注意&#xff0c;这也是正在考虑投资虎牙&#xff08;HUYA&#xff09;的投资者需要注意的问题。 例如&#xff0c;监管机构在2022…...

HBase 分布式搭建

前言: 请先确保 Hadoop 集群搭建完成。 Hadoop 完全分布式搭建(超详细)搭建环境介绍: 三台主机,一主两从,系统为 Centos 7.5。 相关组件版本信息如下: jdk1.8hadoop-3.1.3zookeeper-3.5.7hbase-2.2.3注意,以下安装教程中涉及到的路径请替换成自己的! ZooKeeper 安…...

【Python】修改枚举的取值及链式调用

author: jwensh date: 2023.02.11 文章目录枚举的取值及链式调用需求背景1. enum.key 即获取值&#xff08;而不是 enum.key.value&#xff09;2. 多级链式调用枚举的取值及链式调用 需求背景 测试过程中需要很多参数化的设置及编程规范要求&#xff0c;希望修改数据不修改代…...

复现篇--zi2zi

intro: 用GAN学习东亚语言字体。zi2zi(意思是从字符到字符)是最近流行的pix2pix模型在汉字上的应用和扩展。 article:https://kaonashi-tyc.github.io/2017/04/06/zi2zi.html code:https://github.com/kaonashi-tyc/zi2zi pytorch版本:https://github.com/EuphoriaYan/zi2…...

153、【动态规划】leetcode ——416. 分割等和子集:滚动数组(C++版本)

题目描述 原题链接&#xff1a;1049. 最后一块石头的重量 II 解题思路 本题要找的是最小重量&#xff0c;我们可以将石头划分成两个集合&#xff0c;当两个集合的重量越接近时&#xff0c;相减后&#xff0c;可达到的装量就会是最小&#xff0c;此时本题的思路其实就类似于 4…...

linux head命令(head指令)(获取文件或管道输出结果前n行,默认前10行)与sed命令区别

head命令是一个在Linux系统中常用的命令&#xff0c;用于读取文件的前几行&#xff08;默认读取前10行&#xff09; 文章目录使用方法读取文件的前10行&#xff1a;head filename读取文件的前n行&#xff1a;head -n行数 filename读取多个文件的前几行&#xff1a;head -n 行数…...

Mysql数据库09——分组聚合函数

类似pandas里面的groupby函数&#xff0c;SQL里面的GROUP BY子句也是可以达到分组聚合的效果。 常用的聚合函数有COUNT(),SUM(),AVG(),MAX(),MIN()&#xff0c;其用法看名字都看的出来&#xff0c;下面一一介绍 聚合函数 COUNT()计数 统计student表中计科系学生的人数。 SE…...

第43章 菜单实体及其约束规则的定义实现

1 Core.Domain.Security.Menu namespace Core.Domain.Security { /// <summary> /// 【菜单--类】 /// <remarks> /// 摘要&#xff1a; /// 通过该实体类及其属性成员&#xff0c;用于实现当前程序【Core】.【领域】.【安全】.【菜单】实体与“[ShopDemo].[…...

OpenAI最重要的模型【CLIP】

最近的 AI 突破 DALLE和 Stable Diffusion有什么共同点&#xff1f; 它们都使用 CLIP 架构的组件。 因此&#xff0c;如果你想掌握这些模型是如何工作的&#xff0c;了解 CLIP 是先决条件。 此外&#xff0c;CLIP 已被用于在 Unsplash 上索引照片。 但是 CLIP 做了什么&…...

分享112个JS菜单导航,总有一款适合您

分享112个JS菜单导航&#xff0c;总有一款适合您 112个JS菜单导航下载链接&#xff1a;https://pan.baidu.com/s/1Dm73d2snbu15hZErJjTXxg?pwdfz1c 提取码&#xff1a;fz1c Python采集代码下载链接&#xff1a;https://wwgn.lanzoul.com/iKGwb0kye3wj base_url "h…...

MySQL 3:MySQL数据库基本操作 DQL

数据库管理系统的一个重要功能是数据查询。数据查询不应简单地返回数据库中存储的数据&#xff0c;还应根据需要对数据进行过滤&#xff0c;确定数据的显示格式。MySQL 提供了强大而灵活的语句来实现这些操作。MySQL数据库使用select语句查询数据。 select [all|distinct]<…...

sql语句的优化

sql优化 优化数据访问 查询性能低下最基本的原因是访问的数据太多&#xff0c;大部分性能低下的查询都可以通过减少访问的数据量来优化所以关于低效的查询&#xff0c;需要确认是否检索了大量不需要的数据&#xff0c;以及mysql服务器层是否在分析大量不需要的数据 因为有些查…...

Shell脚本之——自动安装JDK

目录 1.修改主机名 2.创建文件&#xff0c;单独存放Shell脚本 3.编写Shell脚本 4.Shell脚本命令简介 (1)文件头 (2)打印命令 (3)设置全局变量 (4)条件判断 (5)解压 (6)文件重命名 (7)在/etc/profile指定行插入 5.完整脚本内容 6.重启环境变量 7.判断java是否配置…...

大数据---Hadoop安装Hadoop简易版

编写自动安装Hadoop的shell脚本 完整流程: 大数据—Hadoop安装教程&#xff08;二&#xff09; 文章目录编写自动安装Hadoop的shell脚本上传压缩包编写shell脚本vim hadoopautoinstall.sh运行上传压缩包 在opt目录下创建连个目录install和soft 将压缩包上传到install目录下 …...

Spring框架中使用到的设计模式以及对应的类(方法)

模板方法--->postProcessBeanFactory&#xff0c;onFresh、initPropertySource装饰器模式--->BeanWrapper委托者模式--->BeanDefinitionParseDelegate策略模式--->ClassPathXmlApplicationContext、FileSystemApplicationContext、XMLBeanDefinitionReader、Proper…...

类和类的定义

6.2 类和类的定义 面向对象最重要的概念就是类&#xff08;Class&#xff09;和实例&#xff08;Instance&#xff09;&#xff0c;必须牢记类是抽象的模板&#xff0c;比如学生类&#xff0c;而实例是根据类创建出来的一个个具体的对象&#xff0c;每个对象都拥有相同的方法&…...

丝绸之路——NFT 系列来袭!

丝绸之路的经历讲述了汉朝时代的一个重要历史事件。该系列中的 NFT 带有中国这段黄金时代令人愉悦的视觉元素&#xff0c;使其成为值得收藏的物品。 NFT 系列介绍 敦煌女神像01&#xff08;左&#xff09;&#xff1b;汉代士兵&#xff08;中&#xff09;&#xff1b;敦煌女神像…...

配置CMAKE编译环境:VSCODE + MinGW

一. MinGW安装 MinGW(Minimalist GNU For Windows)是个精简的Windows平台C/C、ADA及Fortran编译器&#xff0c;相比Cygwin而言&#xff0c;体积要小很多&#xff0c;使用较为方便。 MinGW最大的特点就是编译出来的可执行文件能够独立在Windows上运行。 MinGW的组成&#xff…...

百度网盘解析工具:3步实现高速下载完全指南

百度网盘解析工具&#xff1a;3步实现高速下载完全指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘下载速度慢而烦恼吗&#xff1f;这款开源解析工具让您告…...

5分钟搞定Meson交叉编译:手把手教你配置ARM64目标平台(附DPDK实例)

Meson交叉编译实战指南&#xff1a;从零构建ARM64平台的DPDK应用 第一次接触交叉编译时&#xff0c;我盯着满屏的工具链路径和架构参数发愣——这简直像在解译外星密码。直到发现Meson的交叉编译配置文件&#xff0c;才发现原来构建跨平台应用可以如此优雅。本文将带你用Meson这…...

文件上传进阶:PHP Graph SDK多媒体处理与分块上传教程

文件上传进阶&#xff1a;PHP Graph SDK多媒体处理与分块上传教程 【免费下载链接】php-graph-sdk The Facebook SDK for PHP provides a native interface to the Graph API and Facebook Login. https://developers.facebook.com/docs/php 项目地址: https://gitcode.com/g…...

nomic-embed-text-v2-moe保姆级教程:Gradio自定义CSS主题与响应式布局

nomic-embed-text-v2-moe保姆级教程&#xff1a;Gradio自定义CSS主题与响应式布局 1. 从零开始&#xff1a;认识nomic-embed-text-v2-moe 如果你正在寻找一个既强大又好用的文本嵌入模型&#xff0c;特别是需要处理多语言内容&#xff0c;那么nomic-embed-text-v2-moe绝对值得…...

DeepSeek-R1-Distill-Qwen-1.5B响应慢?函数调用优化实战解决方案

DeepSeek-R1-Distill-Qwen-1.5B响应慢&#xff1f;函数调用优化实战解决方案 你是不是也遇到过这种情况&#xff1a;好不容易在本地部署了DeepSeek-R1-Distill-Qwen-1.5B这个“小钢炮”模型&#xff0c;结果发现函数调用时响应特别慢&#xff1f;明明官方说RTX 3060能跑200 to…...

深入解析串口通信:从RS232到RS485的工业应用实战

1. 串口通信的工业应用基础 第一次接触工业自动化项目时&#xff0c;我被现场密密麻麻的线缆搞得头晕眼花。直到老师傅指着角落里不起眼的两根双绞线说&#xff1a;"这条RS485总线控制着整条生产线的30台设备"&#xff0c;我才意识到串口通信在工业领域的强大之处。 …...

华硕笔记本终极电池拯救指南:用G-Helper实现智能充电与健康修复

华硕笔记本终极电池拯救指南&#xff1a;用G-Helper实现智能充电与健康修复 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models …...

实战复盘:我是如何用Turbo Intruder的race.py脚本,5分钟挖到一个高并发订单漏洞的

高并发漏洞狩猎实录&#xff1a;从Turbo Intruder脚本调优到电商系统攻防实战 去年在一次众测项目中&#xff0c;我偶然发现某电商平台的积分兑换系统存在并发处理缺陷。这个漏洞最终被评级为高危&#xff0c;而整个挖掘过程只用了不到5分钟——关键就在于对Turbo Intruder的ra…...

M5Stack U126 RTC驱动库:PCF8563T嵌入式实时时钟深度解析

1. 项目概述M5Unit-RTC 是专为 M5Stack 生态中 Unit 系列模块设计的轻量级实时时钟&#xff08;RTC&#xff09;驱动库&#xff0c;对应硬件型号为U126—— 一款基于Ricoh RP5C01A 兼容架构、实际采用 NXP PCF8563T 实时时钟芯片的 IC 接口 RTC 模块。该模块集成高精度温度补偿…...

IP5306电源芯片的‘怪脾气’:实测开机半分钟就休眠?手把手教你两个硬件调试技巧

IP5306电源芯片实战调试&#xff1a;破解自动休眠难题的硬件级方案 实验室里&#xff0c;示波器屏幕上那条本该稳定的电压线突然跌落至零&#xff0c;系统再次陷入休眠——这已经是今天第七次重现IP5306芯片的"怪脾气"。作为一款广泛应用于移动电源的高集成度SOC&…...