fwrite和fread、fseek()

fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。

#include <stdio.h>  
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);  
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);  

说明:

参数size指出一条记录的长度,而nmemb指出要读或写多少条记录,这些记录在ptr所指的内存空间中连续存放,共占size * nmemb个字节。
fread从文件stream中读出size * nmemb个字节保存到ptr中,
fwrite把ptr中的size * nmemb个字节写到文件stream中。

fseek()

功 能: 重定位流上的文件指针
描 述: 函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset个字 节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
返回值: 成功,返回0,否则返回其他值。

int fseek(FILE *stream, long offset, int fromwhere);

第一个参数stream为文件指针
第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移
第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾
其中SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2.
简言之:
fseek(fp,100L,0);把fp指针移动到离文件开头100字节处;
fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处;
fseek(fp,100L,2);把fp指针退回到离文件结尾100字节处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、rewind(FILE *):回到文件开始处2、fprintf(), fscanf(), fgets(), f...
    2016AF阅读 316评论 0 0
  • C/C++输入输出流总结 前两天写C++实习作业,突然发现I/O是那么的陌生,打了好长时间的文件都没有打开,今天终...
    LuckTime阅读 1,758评论 0 6
  • 简介 C/C++中可以使用以fopen、fclose为代表的文件操作函数对文件进行读写。 注:本文在Linux平台...
    decoding阅读 578评论 0 1
  • 天天因为工作中的事,指标太差而焦虑和焦灼,沉不下心学习和思考,即使下午2点上班,也无法集中精力和心神。 有些事...
    雪木912阅读 281评论 0 0
  • Activity的使用 Activity是Android程序的四大组件之一,也是呈现给用户的第一印象,因此对于这个...
    凌勇阅读 817评论 0 0