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

}
相关推荐
爱吃rabbit的mq2 分钟前
第7章 逻辑回归:二分类的基础
算法·分类·逻辑回归
DFT计算杂谈3 分钟前
VASP+Wannier90 计算位移电流和二次谐波SHG
java·服务器·前端·python·算法
执着2599 分钟前
力扣102、二叉树的层序遍历
数据结构·算法·leetcode
Tisfy11 分钟前
LeetCode 2976.转换字符串的最小成本 I:floyd算法(全源最短路)
算法·leetcode··floyd·题解
v_for_van15 分钟前
力扣刷题记录4(无算法背景,纯C语言)
c语言·算法·leetcode
dazzle21 分钟前
Python数据结构(十五):归并排序详解
数据结构·python·算法
2301_7644413337 分钟前
基于paCy模型与jsoncrack进行依存句法分析
python·算法·自然语言处理
咩咩不吃草1 小时前
【逻辑回归】:从模型训练到评价
算法·机器学习·逻辑回归
ersaijun1 小时前
机器人运动控制关键算法体系:从理论框架到前沿实践
算法·机器人