标准C获得文件大小的5种方法

    技术2022-05-11  27

    2009-08-26 16:46 #include "stdafx.h" #include <sys/stat.h> #include <io.h> #include <FCNTL.H> int getfilesize() {     int iresult;     struct _stat buf;     iresult = _stat(__FILE__,&buf);     if(iresult == 0)     {         return buf.st_size;     }     return NULL; } int getfilesize01() {     int fp;     fp=_open(__FILE__,_O_RDONLY);     if(fp==-1)         return NULL;     return _filelength(fp);     //return NULL; } int getfilesize02() {     int fp;     fp=_open(__FILE__,_O_RDONLY);     if(fp==-1)         return NULL;     return _lseek(fp,0,SEEK_END);     //return NULL; } int getfilesize03() {     int fp;     fp=_open(__FILE__,_O_RDONLY);     if(fp==-1)         return NULL;     return _lseek(fp,0,SEEK_END);     //return NULL; } int getfilesize04() {     FILE *fp;     if((fp=fopen(__FILE__,"r"))==NULL)         return 0;     fseek(fp,0,SEEK_END);     return ftell(fp);    //return NULL; } int getfilesize05() {     FILE *fp;     char str[1];     if((fp=fopen(__FILE__,"rb"))==NULL)         return 0;     for(int i = 0;!feof(fp);i++)     {         fread(&str,1,1,fp);             }     return i - 1;    //return NULL; } int main(int argc, char* argv[]) {         printf("getfilesize()=%d/n",getfilesize());     printf("getfilesize01()=%d/n",getfilesize01());     printf("getfilesize02()=%d/n",getfilesize02());     printf("getfilesize03()=%d/n",getfilesize03());     printf("getfilesize04()=%d/n",getfilesize04());     printf("getfilesize05()=%d/n",getfilesize05());     return 0;

    最新回复(0)