zoukankan      html  css  js  c++  java
  • 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. ");
            return 1;
        }
        fwrite(msg,strlen(msg)+1,1,stream);
        fseek(stream,0,SEEK_SET);
        fread(buf,strlen(msg)+1,1,stream);
        printf("%s ",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字节处。

  • 相关阅读:
    Cat- Linux必学的60个命令
    Cmp- Linux必学的60个命令
    Diff- Linux必学的60个命令
    ls- Linux必学的60个命令
    mv- Linux必学的60个命令
    Find- Linux必学的60个命令
    libvirt
    PHP 设计模式 笔记与总结(2)开发 PSR-0 的基础框架
    Java实现 LeetCode 147 对链表进行插入排序
    Java实现 LeetCode 146 LRU缓存机制
  • 原文地址:https://www.cnblogs.com/Ph-one/p/9812173.html
Copyright © 2011-2022 走看看