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

}
相关推荐
报错小能手17 分钟前
数据结构 带头节点的双向循环链表
数据结构·算法·链表
Yolo_TvT25 分钟前
数据结构:算法复杂度
数据结构·算法
OKkankan41 分钟前
多态概念及使用
开发语言·数据结构·c++·算法
nn在炼金43 分钟前
FlashAttention 1 深度解读:原理、价值、应用与实战
人工智能·算法
WHS-_-20221 小时前
Channel Estimation for mmWave High-Mobility Systems With 5G New Radio OFDM (I)
算法·5g
.格子衫.1 小时前
026动态规划之跨步DP——算法备赛
算法·动态规划
roman_日积跬步-终至千里1 小时前
【模式识别与机器学习(7)】主要算法与技术(下篇:高级模型与集成方法)之 扩展线性模型(Extending Linear Models)
人工智能·算法·机器学习
做怪小疯子1 小时前
LeetCode 热题 100——二叉树——二叉树的最大深度
算法·leetcode·职场和发展
Maỿbe1 小时前
暴打力扣之优先级队列(堆)
算法·leetcode·职场和发展
Swift社区1 小时前
LeetCode 438 - 找到字符串中所有字母异位词
算法·leetcode·职场和发展