【C语言】C语言返回文件大小的功能(fseek和ftell的使用)
来源:互联网 发布:数据统计分析的目的 编辑:程序博客网 时间:2024/05/31 19:42
需求:有时候读文件时,需要知道文件的字符总的个数,可能是为了提前定义缓冲区大小或者拷贝文件等等。也可以用于动态创建数组。
在进行这两个问题之前,先来了解一下两个函数,这两个函数配合就能够实现计算大小的功能。
函数 一:fseek
stdio中的库函数:
函数原型:int fseek(FILE *
stream, long int
offset, int
whence);
功能:设定文件指针的位置
参数:
stream: 需要读取的文件流。
whence:文件源指针的位置,值可以是这三个中的一个:SEEK_SET、SEEK_CUR、SEEK_END分别表示文件开头位置,文件当前位置,文件结尾位置。
offset:表示以 whence为基点的偏移量的大小。
所以这个函数的整体功能是:从任意位置比如最常用的SEEK_SET、SEEK_CUR、SEEK_END,移动文件指针,移动的大小为offset。函数执行之后,文件指针就移动到了whence + offset位置处。
返回值:执行成功返回0,执行失败返回非零。
函数二:ftell
stdio中的库函数:
函数原型: long int ftell(FILE *
stream);
功能:当前文件读写位置。
返回值:是当前读写位置偏离文件头部的字节数.
所以由fseek设定文件指针的位置,再由ftell计算从文件开头到fseek获取的位置的字节数。
实例代码如下:
include <stdio.h>#include <stdlib.h>int main(){FILE * fp;fp = fopen("addoverflowDemo.c","r");if(fp == NULL){ return -1;}//int fseek(FILE *stream, long int offset, int whence); 获取起始位置fseek(fp,0,SEEK_END);//long int ftell(FILE *stream);计算开头到fseek位置的字符数int value;value = ftell(fp);printf("字符数为:%d\n",value);return EXIT_SUCCESS;}
编译连接运行结果如下:
[root@localhost program]# ./getsizeDemo 字符数为:309
- 【C语言】C语言返回文件大小的功能(fseek和ftell的使用)
- C语言返回文件大小的功能(fseek和ftell的使用)
- C语言函数fseek, fread, ftell的使用
- C语言的文件随机访问fseek()和ftell()函数
- c语言文件定位:fseek()函数和ftell()函数的使用
- c语言文件定位:fseek()函数和ftell()函数的使用
- c语言文件定位:fseek()函数和ftell()函数的使用
- C语言中的ftell,fseek
- c语言ftell和c++的tellg,返回读写偏移
- C语言:fseek与ftell函数
- C语言学习:fseek与ftell函数(转载)
- C语言学习进程:fseek与ftell函数
- C语言文件读写常识(fseek, ftell, fread, fwrite, fopen)
- C语言学习进程:fseek与ftell函数
- linux c 语言之--fseek(),fseeko(),fseeko64(),ftell(),ftello()讲解
- c语言fseek函数的总结
- fseek与ftell做c文件的移动
- C语言中fread(),fwrite(),fseek()用法和功能
- 中国无晶圆厂业者的未来:基带、工业和并购
- memcached分布式环境搭建
- 佳能数码相机拍摄技巧
- 不错的算法练习网站
- 将顶点数据写入通用的顶点属性存储区 VBO
- 【C语言】C语言返回文件大小的功能(fseek和ftell的使用)
- Firefox优化
- shm共享内存使用示例
- vim 设置
- poj1157 LITTLE SHOP OF FLOWERS
- Android 在libgdx中添加admob
- 移动开发--iOS开发小代码总结
- ubuntu 安装 Sublime Text 2
- iphone中的圆形相框效果