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

}
相关推荐
啊哦呃咦唔鱼14 小时前
LeetCode hot100-438 找到字符串中所以字母异位词
算法·leetcode·职场和发展
重生之后端学习14 小时前
136. 只出现一次的数字
开发语言·算法·leetcode·职场和发展·深度优先
smj2302_7968265214 小时前
解决leetcode第3869题.统计区间内奇妙数的数目
python·算法·leetcode
TracyCoder12315 小时前
LeetCode Hot100(66/100)——118. 杨辉三角
算法·leetcode·职场和发展
葳_人生_蕤15 小时前
Leetcode HOT 100
算法·leetcode·职场和发展
仟濹15 小时前
【算法打卡day23(2026-03-15 周日)今日算法or技巧:双指针 & 链表 & 回溯算法】6个题
数据结构·算法·链表
靠沿15 小时前
【优选算法】专题十四——优先级队列
算法
无尽的罚坐人生15 小时前
hot 100 35. 搜索插入位置
数据结构·算法·leetcode·二分查找
葳_人生_蕤15 小时前
力扣Hot100——234.回文链表
算法·leetcode·链表
自信1504130575915 小时前
数据结构之实现链式结构二叉树
c语言·数据结构·算法