如何在c中获取大于LONG_MAX的文件大小?

问题描述 投票:0回答:1

如何在 C 中获得大于 LONG_MAX 的文件大小?

我知道只要您的文件大小不超过 LONG_MAX,您就可以使用 fopen+SEEK_END+ftell,但如果超过了怎么办?

#include <stdio.h>
int main(int argc, char **argv) {
    FILE *fp;
    fp = fopen(argv[0], "rb");
    fseek(fp, 0, SEEK_END);
    long fsize = ftell(fp);
    fclose(fp);
    printf("%ld\n", fsize);
}

在 C++ 中我会使用

std::filesystem::file_size()
返回
std::uintmax_t

c filesize
1个回答
0
投票

评论建议使用windows。

Windows 中有很多功能:

  • _fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32
  • GetFileSizeEx
  • ftell, _ftelli64
© www.soinside.com 2019 - 2024. All rights reserved.