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

}
相关推荐
盘古开天16667 分钟前
PPO算法代码实战(三):PyTorch从零实现PPO求解CartPole
人工智能·pytorch·算法
yyy(十一月限定版)7 分钟前
CF2138A Cake Assignment
算法
盘古开天166628 分钟前
PPO算法原理详解(下):Clip机制深入剖析与实践指南
人工智能·算法·机器学习
All for pursuit.1 小时前
【贪心-4】581.最短无序连续子数组
数据结构·c++·算法·leetcode
weixin_307779131 小时前
从“人操作仪器”到“Agent 自主发现”:OPL 金属材料自驱动实验室 MVP 技术论述
开发语言·人工智能·算法·架构
释厄6231 小时前
01AB 基本元理——任何智能体的三元法理·0=1→0≠1法理跃迁为天理
人工智能·windows·算法·microsoft·机器学习
Omics Pro1 小时前
经典多组学整合算法→商用云平台
数据库·人工智能·算法·机器学习·自然语言处理
ting94520001 小时前
深度拆解|1752vc Pitch Deck Analyzer 底层技术架构与核心算法原理
人工智能·算法·架构
贾斯汀frank2 小时前
基于 Java + Playwright 实现网站自动访问与数据采集
算法
早睡早起不秃头&2 小时前
【架构】- 移动机器人系统的插件化:让定位算法独立演进
算法·架构