当前位置: 首页 > news >正文

fread和fseek的用法

原味:http://baike.baidu.com/view/656696.htm

     http://baike.baidu.com/view/656689.htm

fread   功 能: 从一个流中读数据   函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream );    参 数:   1.用于接收数据的地址(指针)(buffer)   2.单个元素的大小(size) :单位是字节而不是位,例如读取一个整型数就是2个字节   3.元素个数(count)   4.提供数据的文件指针(stream)   返回值:成功读取的元素个数

程序例

#include <stdio.h>

int main(void)
{
    FILE *stream;
    char msg[] = "this is a test";
    char buf[20];
    if ((stream = fopen("DUMMY.FIL","w+")) == NULL )
    {
        fprintf(stderr,"Cannot open output file.\n");
        return 1;
    }
    fwrite(msg,strlen(msg)+1,1,stream);
    fseek(stream,0,SEEK_SET);
    fread(buf,strlen(msg)+1,1,stream);
    printf("%s\n",buf);
    fclose(stream);
    return 0;
}

fseek

目录

功 能
用 法
描 述
返回值
程序例
注意事项

功 能

重定位流(数据流/文件)上的文件内部位置指针   注意:不是定位文件指针,文件指针指向文件/流。位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变指向别的文件。

 用 法

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

 描 述

函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere(偏移起始位置:文件头0,当前位置1,文件尾2)为基 准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。

返回值

成功,返回0,否则返回其他值。   

fseek position the file(文件) position(位置) pointer(指针) for the file referenced by stream to the byte location calculated by offset.

int fseek( FILE *stream, long offset, int origin );
  第一个参数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);把文件内部指针移动到离文件开头100字节处;
  fseek(fp,100L,1);把文件内部指针移动到离文件当前位置100字节处;
  fseek(fp,-100L,2);把文件内部指针退回到离文件结尾100字节处。

转载于:https://www.cnblogs.com/Ph-one/p/9812173.html

相关文章:

  • 17-18专业课
  • 希尔排序为什么不稳定
  • memory cache 和 disk cache
  • 现成
  • 光滑--可导
  • alloc_skb申请函数分析
  • UML状态机图【图3】--☆
  • 构件图和部署图
  • UML建模类图【2】--☆☆
  • 活动图、泳道【图1】--☆☆
  • 组件图【图4】--☆
  • 部署图【图5】--☆
  • 顺序图【6】--☆☆
  • 用例图【图7】--☆
  • 四则运算表达式分解,前中后缀表达式(栈的应用)
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Angular6错误 Service: No provider for Renderer2
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Redux系列x:源码分析
  • vue数据传递--我有特殊的实现技巧
  • yii2中session跨域名的问题
  • 阿里研究院入选中国企业智库系统影响力榜
  • 简单实现一个textarea自适应高度
  • 目录与文件属性:编写ls
  • 听说你叫Java(二)–Servlet请求
  • raise 与 raise ... from 的区别
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​水经微图Web1.5.0版即将上线
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #define 用法
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (0)Nginx 功能特性
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (52)只出现一次的数字III
  • (7)STL算法之交换赋值
  • (c语言)strcpy函数用法
  • (定时器/计数器)中断系统(详解与使用)
  • (二)构建dubbo分布式平台-平台功能导图
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (论文阅读30/100)Convolutional Pose Machines
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET单元测试
  • .NET企业级应用架构设计系列之应用服务器
  • .NET轻量级ORM组件Dapper葵花宝典
  • .so文件(linux系统)