• fread


    从给定输入流stream读取最多count个对象到数组buffer中(相当于以对每个对象调用count次fgetc),把buffer当作unsigned char数组并顺序保存结果。流的文件位置指示器前进读取的字节数。
    若出现错误,则流的文件位置指示器的位置不确定。若没有完整地读入最后一个元素,则其值不确定。
    定义于头文件<stdio.h>
    size_t freadvoid *buffer, size_t size, size_t count, FILE *stream );//C99前
    size_t freadvoid *restrict buffer, size_t size, size_t count, FILE *restrict stream );//C99起
     
    //size_t是在基于无符号整数memsize类型的C / C + +的标准库中定义的。C语言中,此类型位于头文件stddef.h中,而在C++中,则位于cstddef中。
    //经测试发现,在32位系统中size_t是4字节的,而在64位系统中,size_t是8字节的,这样利用该类型可以增强程序的可移植性。

    参数

    buffer 指向要读取的数组中首个对象的指针
    size 每个对象的大小(单位是字节)
    count 要读取的对象个数
    stream 输入流

    返回值

    返回成功读取的对象个数,若出现错误或到达文件末尾,则可能小于count。
    若size或count为零,则fread返回零且不进行其他动作。
    fread不区分文件尾和错误,因此调用者必须用feofferror才能判断发生了什么。
    示例代码:
    #include <stdio.h>
    #include <string.h>
     
    int main(void)
    {
        FILE *stream;
     
        char msg[]="this is a test";
     
        char buf[20];
     
        if((stream=fopen("DUMMY.FIL","w+"))==NULL)
        {
            fprintf(stderr,"Can not open output file. ");
            return 0;
        }
     
     
        /*write some data to the file*/
        fwrite(msg,1,strlen(msg)+1,stream);
     
        /*sizeof(char)=1 seek to the beginning of the file*/
        fseek(stream,0,SEEK_SET);
     
        /*read the data and display it*/
        fread(buf,1,strlen(msg)+1,stream);
     
        printf("%s ",buf);
     
        fclose(stream);
     
        return 0;
     
    }
     
    /*
    int fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置。
    如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset取值大于等于2*1024*1024*1024,即long的正数范围2G),则不改变stream指向的位置,函数返回一个非0值。
    函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere(偏移起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
    fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。
     
    */
  • 相关阅读:
    113.dynamic_cast 虚函数 通过子类初始化的父类转化为子类类型
    112.虚函数强化
    111.final与override
    110.纯虚函数
    109.虚函数与析构构造
    custom-ubuntu-server-iso
    定制ubuntu的时候修改proseed
    centos使用U盘做启动盘
    fio的配置使用
    持续运行一个命令-并且将结果输出到文本
  • 原文地址:https://www.cnblogs.com/ruigelwang/p/12724435.html
Copyright © 2020-2023  润新知