• C语言获取文件大小相关操作


    C语言获取文件大小相关操作


    声明:引用请注明出处http://blog.csdn.net/lg1259156776/


    说明

    通常在希望从文件中把数据全都出来赋值给一个数组或者某一个指针,然后再进行相关的数据处理,比如解码等操作。而在进行赋值以前,数组或者指针都需要进行内存分配,通常对于数组可以直接以文件最大的字节数进行分配,或者指针用malloc也按照最大字节进行分配,但这样会造成内存浪费,对于追求完美的程序员来讲是不能容忍的。所以一种非常适合的方法是在读取文件具体数据之前,可以提前获得文件大小,然后利用malloc对指针进行内存分配,然后再进行数据读取,直接fread对应的数据即可。本文给出了一种最简单的获取文件大小的方法。

    程序代码

         FILE * fImage;
         int Length;
         unsigned char * ImageData;
         if((fImage=fopen("Bretagne2.j2k","rb"))!=NULL)//寻找文件的大小!
         {
            fseek(fImage,0,SEEK_END);
            Length=ftell(fImage);
            printf("data size = %ld
    ",Length);
            fseek(fImage,0,SEEK_SET);
            ImageData = (unsigned char *)malloc(Length);
            fread(ImageData,1,Length,fImage);
            if(!ImageData)
            {
                printf("malloc error! 
    ");
                return;
            }
            fclose(fImage);
        }
        else 
        {
            printf("Open Data error!
    ");
            return;
        }
    

    首先是打开文件,然后将文件指针调整到文件尾部,然后使用ftell获取文件指针的位置,ftell返回值就是用于得到文件位置指针当前位置相对于文件首的偏移字节数。这样就很简单的获取这个文件的大小了。同时直接使用malloc进行内存分配,然后直接读取即可,十分方便。


    2015-10-18调试记录总结 张朋艺

  • 相关阅读:
    mac 通过SSH连接服务器aws和github
    Android开发 View与Activity的生命周期[转载]
    Android开发 APP闪退Fragment重叠泄露问题
    3月3日 一堆一堆事
    杭州.net俱乐部 新开qq群
    招聘 .net 开发工程师
    852009
    872009
    01背包和完全背包
    8142009
  • 原文地址:https://www.cnblogs.com/huty/p/8519006.html
Copyright © 2020-2023  润新知