C语言中如何获得文件大小
来源:互联网 发布:adidas淘宝官方旗舰店 编辑:程序博客网 时间:2024/06/05 20:36
作者 : 卿笃军
方法一:
获得文件大小需要用到2个函数:fseek() , ftell()
fseek()函数:
原型:intfseek(FILE*stream, long offset, int fromwhere);
参数:
stream: 第一个参数stream为文件指针
offset : 第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移
fromwhere: 第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾
其中SEEK_SET,SEEK_CUR和SEEK_END依次为0,1和2.
简言之:
fseek(fp,100L,0);把文件内部指针移动到离文件开头100字节处;
fseek(fp,100L,1);把文件内部指针移动到离文件当前位置100字节处;
fseek(fp,-100L,2);把文件内部指针退回到离文件结尾100字节处。
参考文章:百度百科,fseek(),http://baike.baidu.com/view/656696.htm
ftell()函数:
原型: longftell(FILE*stream);
功能:返回当前文件位置,也就是说返回FILE指针当前位置。(也就是偏离文件首字符个数)
参考文章:百度百科,ftell(),http://baike.baidu.com/view/656699.htm
#include <stdio.h>#include <stdlib.h> //exit(0);int main(){FILE *fp =NULL;long n = 0;if ((fp = fopen("Q.txt","r")) == NULL){printf("文件打开失败.\n");exit(0);}fseek(fp,0,2); //指针:移动到文件尾部n = ftell(fp); //返回指针偏离文件头的位置(即文件中字符个数)printf("%ld\n",n);return 0;}
方法二:
这里使用到 struct _stat结构体
st_atime : 上次访问该文件的时间
st_ctime : 文件创建时间
st_dev : 文件所在磁盘
st_mtime :最后一次修改文件时间
st_size : 文件大小
//...... 所有参数请参见MSDN
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <time.h>int main(){struct _stat buf; //注意创建一个结构体int result;result = _stat( "Q.txt", &buf );printf( "文件大小 : %ld\n", buf.st_size );printf( "所在磁盘 : %c:\n", buf.st_dev + 'A' );printf( "创建时间 : %s", ctime( &buf.st_atime ) );return 0;}
- C语言中如何获得文件大小
- c 语言获得文件大小
- C/C++如何获得文件大小
- C语言如何获取文件大小
- c获得文件大小
- C++中获得文件大小
- C语言中获取文件大小的方法
- C语言中获取文件大小的函数
- C++如何获得文件大小(1)
- C++如何获得文件大小(2)
- C++如何获得文件大小(3)
- C语言识别文件大小
- c语言文件大小获取
- C语言获取文件大小
- C语言获取文件大小
- C语言读取文件大小
- C语言获取文件大小
- C语言计算文件大小
- 云计算操作系统(读书笔记3)
- mysql 任务调度
- 动态背景下的运动目标检测
- BubbleSort
- ftk学习记(进度条篇)
- C语言中如何获得文件大小
- Algorithm学习笔记 --- Largest Rectangle in a Histogram
- 读《平凡的世界》有感
- Ubuntu 下编译 VLC-Win32
- red hat 未注册不能使用yum的解决办法
- [hdu-2048] 神、上帝以及老天爷
- 数学漫谈
- POI与JXL写Excel的性能对比
- FFMPEG结构体分析:AVFrame