如何在 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
评论建议使用windows。
Windows 中有很多功能:
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32
GetFileSizeEx
ftell, _ftelli64