栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C/C++获取文件大小

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C/C++获取文件大小

文章目录
  • 获取文件大小
    • 概述
    • 语法
      • 函数说明
      • 返回值
    • 示例

获取文件大小 概述

利用 fseek() 与 ftell() 函数可以计算出一个文件的大小。fseek() 函数用于设置文件指针 stream 的位置,ftell() 函数用于得到文件位置指针当前位置相对于文件首的偏移字节数。

语法
#include 

int fseek(FILE *stream, long offset, int whence);

long ftell(FILE *stream);

局限性,该两个函数的输入参数与输出函数分别为 int 和 long,因此最大仅能计算 232 即 4G 文件的大小。

函数说明
  • stream – 指向 FILE 对象的指针
  • offset – 相对 whence 的偏移量,以字节为单位(正数或负数)
  • whence – 设定从文件的哪里开始偏移。取值为:SEEK_SET(文件开头)、SEEK_CUR(当前位置)、SEEK_END(文件结尾)。
返回值
  • 如果成功,则该函数返回零,否则返回非零值。
示例
#include 

int main(int argc, char const *argv[]) {
    long size = 0;
    FILE *fp = fopen("/usr/bin/ls", "r");
    fseek(fp, 0, SEEK_END);
    size = ftell(fp);
    printf("size: %ldn", size);
    
    fclose(fp);
    return 0;
}
  • 第 5 行以只读形式打开 /usr/bin/ls 文件
  • 第 6 行调用 fseek() 函数并指向文件结尾
  • 第 7 行计算当前位置相对于文件首的偏移字节数,即得到文件大小值
  • 第 8 行打印文件大小
  • 第 9 行在该示例中注释掉了,当打开注释,指向文件开头,可以执行其他文件读写操作
  • 第 10 行使用完之后及时关闭文件指针
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1038024.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号