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);

}
相关推荐
初学者,亦行者9 小时前
算法设计与分析3:贪心法 - 求解最短路径问题(TSP)
算法·代理模式
Starmoon_dhw9 小时前
题解:P16108 「o.OI R-1」基础博弈练习题
c++·算法·图论
大鱼>9 小时前
AI+快递分拣:视觉识别+自动分拣+异常检测
人工智能·深度学习·算法·机器学习
想要成为糕糕手9 小时前
238. 除了自身以外数组的乘积 — 面试向深度解析
javascript·算法·面试
浩瀚地学9 小时前
【面试算法笔记】0105-数组-螺旋矩阵
java·开发语言·笔记·算法·面试
Hesionberger10 小时前
动态规划与二分法破解最长递增子序列
java·数据结构·python·算法·leetcode
imuliuliang10 小时前
关于Kruskal 算法在图优化问题中的扩展应用7
算法
老约家的可汗11 小时前
Linux中基础IO
linux·服务器·算法
满怀冰雪11 小时前
第29篇-状态压缩DP-当状态很多时如何降维优化
java·算法·动态规划
令狐掌门11 小时前
2026华为OD面试题020:日志文件异常检测
算法·leetcode·华为od