c语言读取文件大小的函数 c语言获取文件的大小
怎样用C语言高效的读取一个70M 左右的txt文件并,如果用malloc函数的话怎么实现呢
现成的程序, 有英文详细解释
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站制作、成都外贸网站建设、滨州网络推广、小程序制作、滨州网络营销、滨州企业策划、滨州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供滨州建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
#include stdio.h
#include stdlib.h
int main () {
FILE * pFile;
long lSize;
char * buffer;
size_t result;
pFile = fopen ( "myfile.bin" , "rb" );
if (pFile==NULL) {fputs ("File error",stderr); exit (1);}
// obtain file size: 获取文件大小
fseek (pFile , 0 , SEEK_END); //窍门 1
lSize = ftell (pFile); // 窍门 2
rewind (pFile);
// allocate memory to contain the whole file: //动态分配
buffer = (char*) malloc (sizeof(char)*lSize);
if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);}
// copy the file into the buffer: // 文件复制到 缓冲变量
result = fread (buffer,1,lSize,pFile);
if (result != lSize) {fputs ("Reading error",stderr); exit (3);}
/* the whole file is now loaded in the memory buffer. */ // 整个文件在 buffer 里
// terminate
fclose (pFile); // 关闭文件
free (buffer); // 释放
return 0;
}
如何用C语言获取文件的大小
/* 解题思路: 以只读方式打开某一文件,然后将文件指针定位在文件结尾的位置,利用ftell函数返回指针的在文件中的相对位置即可。
*/
#include "stdio.h"
main()
{ FILE *fp; /*定义文件指针*/
long cnt; /*定义变量cnt用来存储文件大小数据*/
fp=fopen("c:\\1.txt","r"); /*此处请填写测试文件的地址,并以只读("r")方式打开文件*/
if( fp==NULL ) /*如果打开的文件不存在,则退出*/
{ exit(0);
printf("文件打开失败!");
}
fseek(fp,0L,SEEK_END); /*利用fseek函数将指针定位在文件结尾的位置*/
cnt=ftell(fp); /*利用ftell函数返回指针相对于文件开头的位置,以字节计算*/
printf("文件所占的字节数为%ld个\n",cnt); /*进行输出*/
}
c语言中的rewind()是什么意思
rewind是C 程序中的库函数。
功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头。
注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。
rewind函数作用等同于 (void)fseek(stream, 0L, SEEK_SET); 用 法: void rewind(FILE *stream);
“函数”是从英文function翻译过来的,其实,function在英文中的意思即是“函数”,也是“功能”。从本质意义上来说,函数就是用来完成一定功能的。
这样对函数的概念就很好理解了,所谓函数名就是给该功能起个名字,如果该功能是用来实现数学运算的,就是数学函数。
扩展资料
C语言没有提供获取文件大小的函数,要想实现该功能,必须自己编写函数。
1、fseek()函数
int fseek (FILE *filepointer,long offset, int whence)
作用就是将文件指针所指向的文件的读写位置指针移动到特定的位置,这里offset代表了要移动到距离,whence代表了移动到初始地点。offset的值假如是正数就会往 whence右边移动,假如是负数就会往whence左边移动。
fseek(fp, 8, SEEK_SET); //代表开头位置往右边移动8个字节。
2、rewind()函数
将读写位置指针重置到文件开头。void rewind(FILE *filepointer);
3、ftell()函数
这个函数可以用来获取文件内部指针(位置指针)距离文件开头的字节数。
它的原型是:long int ftell ( FILE * fp );
参考资料来源:百度百科-rewind
C语言 fstat函数问题
这是文件常用函数啊,用来查看文件结构之类的,看了下代码写的没啥问题,建议你看下头文件是否完整,也有可能是win7添加了所需头文件的环境变量,xp没做这一步骤,建议检查一下
标题名称:c语言读取文件大小的函数 c语言获取文件的大小
转载来源:http://azwzsj.com/article/dojdhec.html