c语言 获取文件大小

方法一:

获得文件大小需要用到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(),https://baike.baidu.com/view/656696.htm

ftell()函数:

原型: longftell(**FILE ***stream);

功能:返回当前文件位置,也就是说返回FILE指针当前位置。(也就是偏离文件首字符个数)

方法二:

这里使用到 struct _stat结构体

**st_atime **: 上次访问该文件的时间

**st_ctime **: 文件创建时间

**st_dev **: 文件所在磁盘

**st_mtime **:最后一次修改文件时间

**st_size **: 文件大小

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • [转]C/C++ 文件读写操作总结 在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以...
    天之道天知道阅读 5,227评论 0 7
  • C/C++输入输出流总结 前两天写C++实习作业,突然发现I/O是那么的陌生,打了好长时间的文件都没有打开,今天终...
    LuckTime阅读 1,753评论 0 6
  • 简介 C/C++中可以使用以fopen、fclose为代表的文件操作函数对文件进行读写。 注:本文在Linux平台...
    decoding阅读 576评论 0 1
  • 遇见是一件很美好的事情,今日的我遇见了同频的伙伴(超级开心);遇见了《朗读者》;遇见了往日的挚友;遇见有时是不经意...
    7515b237f6ce阅读 292评论 0 0
  • 1 你的身边是否有这样的人,原本是浑浑噩噩地平庸之辈,突然间“觉醒”,人生就像开挂一样,变成了你完全不认识的人。 ...
    弘丹阅读 4,683评论 40 129