linux的fseek函数

cpp 复制代码
  #include <stdio.h>

       int fseek(FILE *stream, long offset, int whence);

参数:第一个为文件指针,第二个是指针的偏移量,第三个是指针偏移的起始位置

返回值:重定位成功返回0,否则返回非零值

重定位的主要目的:该函数不是重定位文件指针,而是重定位文件内部的指针,让指向文件内部数据的指针移动到文件中我们感兴趣的数据上,则保留原来的stream的位置不变

分别用到三个宏

SEEK_SET 既0: 文件开头

SEEK_CUR 既1:文件当前位置

SEEK_END 既2:文件结尾

cpp 复制代码
#include <stdio.h>
#include <string.h>

int main()
{
        FILE *fp;
        int nRet = 0;
        char readBuff[12];
        memset(readBuff,0,12);
        char *writeBuff = "helloworld";
        fp = fopen("mm","r+");
        if(fp == NULL){
                printf("open failed \n");
                return -1;
        }
        printf("open success !\n");
        nRet = fread(readBuff,4,2,fp);
        if(nRet <= 0){
                printf("read file failed \n");
                return -2;
        }
        printf("read %s \n",readBuff);

        nRet = fseek(fp,1,SEEK_SET);
        if(nRet){
                printf("fseek file failed !\n");
                return -4;
        }
        printf("fseek success !\n");

        nRet = fwrite(writeBuff,4,1,fp);
        if(nRet <=0){
                printf("fwrite failed \n ");
                return -3;
        }
        printf("fwrite success !\n");
        fclose(fp);

}
相关推荐
全干engineer41 分钟前
web3-基于贝尔曼福特算法(Bellman-Ford )与 SMT 的 Web3 DeFi 套利策略研究
算法·金融·web3·去中心化·区块链·智能合约
Splendid1 小时前
Geneformer:基于Transformer的基因表达预测深度学习模型
javascript·算法
愿所愿皆可成1 小时前
机器学习之聚类Kmeans算法
算法·机器学习·kmeans·聚类
幻奏岚音1 小时前
统计学(第8版)——假设检验学习笔记(考试用)
笔记·学习·算法
hie988942 小时前
基于matlab策略迭代和值迭代法的动态规划
算法·动态规划
Coovally AI模型快速验证2 小时前
SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈
人工智能·神经网络·算法·yolo·计算机视觉·目标跟踪·无人机
Brduino脑机接口技术答疑2 小时前
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
人工智能·算法·脑机接口·新手入门
真的很上进2 小时前
2025最全TS手写题之partial/Omit/Pick/Exclude/Readonly/Required
java·前端·vue.js·python·算法·react·html5
linweidong2 小时前
GO 基础语法和数据类型面试题及参考答案(下)
算法·后端面试·泛型·go面试·go面经·go求职
圈圈编码3 小时前
LeetCode Hot100刷题——合并两个有序链表
java·数据结构·算法·leetcode·链表