1.rewind函数

作用:将文件内容的指针重新指向一个流的开头

注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。

#include<stdio.h>void rewind(FILE *stream)无返回值

2.fgetpos

作用:依据当前文件的句柄,获取当前访问指针位置信息

#include<stdio.h>
int fgetpos(FILE *restrict stream, fpos_t *restrict pos);

返回值:成功:0,失败:非0值

3.lseek

作用:移动文件的读写位置

#include<stdio.h>off_t lseek(int fildes, off_t offset, int whence);SEEK_SET 参数offset 即为新的读写位置.SEEK_CUR 以目前的读写位置往后增加offset 个位移量.SEEK_END 将读写位置指向文件尾后再增加offset 个位移量. 当whence 值为SEEK_CUR 或SEEK_END 时, 参数offet 允许负值的出现.

每一个已打开的文件都有一个读写位置, 当打开文件时通常其读写位置是指向文件开头, 若是以附加的方式打开文件(如O_APPEND), 则读写位置会指向文件尾. 当read()或write()时, 读写位置会随之增加,lseek()便是用来控制该文件的读写位置. 参数fildes 为已打开的文件描述词, 参数offset 为根据参数whence来移动读写位置的位移数.

例如:
1) 欲将读写位置移到文件开头时:lseek(int fildes, 0, SEEK_SET);
2) 欲将读写位置移到文件尾时:lseek(int fildes, 0, SEEK_END);
3) 想要取得目前文件位置时:lseek(int fildes, 0, SEEK_CUR);

返回值:当调用成功时则返回目前的读写位置, 也就是距离文件开头多少个字节. 若有错误则返回-1, errno 会存放错误代码.

4.fseek

作用:移动文件流的读写位置

#include<stdio.h>
int fseek(FILE *stream, long offset, int whence);SEEK_SET 从距文件开头offset 位移量为新的读写位置. SEEK_CUR 以目前的读写位置往后增加offset 个位移量.
SEEK_END 将读写位置指向文件尾后再增加offset 个位移量. 当whence 值为SEEK_CUR 或
SEEK_END 时, 参数offset 允许负值的出现.

1、参数stream 为已打开的文件指针,
2、参数offset 为根据参数whence 来移动读写位置的位移数

返回值:当调用成功时则返回0, 若有错误则返回-1, errno 会存放错误代码.

附加说明:fseek()不像lseek()会返回读写位置, 因此必须使用ftell()来取得目前读写的位置.

具体例子

#include <stdio.h>
int main()
{FILE * stream;long offset;fpos_t pos;stream = fopen("/test.txt", "r");fseek(stream, 5, SEEK_SET);printf("offset = %d\n", ftell(stream));rewind(stream);fgetpos(stream, &pos);printf("offset = %d\n", pos);pos = 10;fsetpos(stream, &pos);printf("offset = %d\n", ftell(stream));fclose(stream);return 0;
}

rewind,fgetpos,lseek和fseek用法相关推荐

  1. C语言之文件读写探究(五):rewind、ftell、fseek(文件指针偏移)

    相关博文:C语言之文件读写探究(一):fopen.fclose(文件的打开和关闭) 相关博文:C语言之文件读写探究(二):fputc.fgetc.feof(一次读写一个字符(文本操作)) 相关博文:C ...

  2. lseek函数的用法

    lseek函数的用法 所有打开的文件都有一个当前文件偏移量(current file offset),以下简称为 cfo.cfo 通常是一个非负整数,用于表明文件开始处到文件当前位置的字节数.读写操作 ...

  3. 函数fseek() 用法

    每天进步一点点–>函数fseek() 用法 在阅读代码时,遇到了很早之前用过的fseek(),很久没有用了,有点陌生,写出来以便下次查阅. 函数功能是把文件指针指向文件的开头,需要包含头文件st ...

  4. Linux C/C++编程:lseek、fseek、ftell、rewind、fgetpos、fsetpos、

    rewind.fseek.ftell为C库函数,有缓冲,lseek为系统函数,不带缓冲 理论 每个打开文件都有一个与其相关联的"当前文件偏移量" 它通常是一个非负整数. 通常,读写 ...

  5. fseek/ftell/rewind/fgetpos/fsetpos函数使用-linux

    程序: #include<stdio.h> int main(int argc,char *argv[]) { FILE * stream; fpos_t pos; stream = fo ...

  6. java+fseek+函数_函数fseek() 用法(转)

    在阅读代码时,遇到了很早之前用过的fseek(),很久没有用了,有点陌生,写出来以便下次查阅. 函数功能是把文件指针指向文件的开头,需要包含头文件stdio.h fseek 函数名: fseek 功 ...

  7. C语言fseek、ftell和rewind函数详解

    对于文件的读写方式,C 语言不仅支持简单地顺序读写方式,还支持随机读写(即只要求读写文件中某一指定的部分).对顺序读写方式来说,随机读写方式需要将文件内部的位置指针移动到需要读写的位置再进行读写,这通 ...

  8. linux fputc fgetc fseek rewind 函数

    目录 前言 fputc 函数 fgetc 函数 fseek函数 rewind函数 前言 <sprintf fprintf 函数 > 前一节讲了 sprintf fprintf 函数 的缓存 ...

  9. linux 编程函数原型与用法

    函数原型以及部分实例应用 --------------------------------------------------------------------------------------- ...

最新文章

  1. 干货!一文读懂人工智能和机器学习有什么关系
  2. UVA 12034 Race
  3. 35.JVM 参数(JVM中的各种参数及含义、收集器相关、PrintGC等各种辅助参数)
  4. 【SAS BASE】SCAN函数
  5. [转]table中设置tr行间距
  6. IOS之学习笔记十五(协议和委托的使用)
  7. 智慧交通day02-车流量检测实现05:卡尔曼滤波器实践(小车模型)
  8. 喜马拉雅下载成mp3方法
  9. 五款服务器配置管理工具
  10. 前端开发IDE---VSCode前端开发环境配置
  11. 数据分析思维:分析方法和业务知识
  12. 台达 PLC 绝对定位
  13. docker-compose的nginx重启失败: Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address alread
  14. STM8S003国产替代 DP32G003 32 位微控制器芯片
  15. h5移动端开发中配置真机测试
  16. 抖音怎么知道自己上热门 手机视频md5值修改
  17. Ubuntu16.04装拼音/Sogou遇到的问题(卸载/重装 Fcitx / Fcitx Configuration、卸载/重装Sogou)
  18. 计算机硬件希沃课件,希沃课件怎么转为ppt?
  19. 面部识别软件揭示家族成员相似性
  20. 目前主流的移动广告联盟有哪些呢?

热门文章

  1. AutoCAD 2019.0.1 Update 官方简体中文版
  2. 【信息学奥赛】2061:【例1.2】梯形面积(C++)
  3. 计算机辅助培训系统,UG NX7.5 计算机辅助培训系统CAST
  4. 电感、电容贮能公式的推导
  5. #pragma DATA_SECTION与#pragma CODE_SECTION的使用
  6. Labview VISA实现串口通信实例讲解 转
  7. 在sql强制指定索引查询
  8. 如何给博客添加看板娘详解(面向新手)
  9. Python新技术和趋势:如何应对Python生态的变化和发展趋势
  10. linux下使用微信web开发者工具