如何获取大型(> 4 GB)文件的文件大小?

时间:2010-05-10 04:38:51

标签: c large-files filesize

当文件大小超过4GB时,如何在C中获取文件的文件大小?

ftell返回一个4字节的有符号长整数,将其限制为两个字节。 stat有一个类型为off_t的变量,它也是4个字节(不确定符号),所以最多它可以告诉我4gb文件的大小。

如果文件大于4 GB,该怎么办?

3 个答案:

答案 0 :(得分:2)

在使用glibc的Linux上,ftell返回off_t;取决于标志off_t可以是32位或可以是64位。

在Linux上,通过执行off_t(LFS代表大文件支持),您可以获得相应的标志以获得64位getconf LFS_CFLAGS

答案 1 :(得分:2)

在Windows上,您使用的是GetFileSize[Ex]

答案 2 :(得分:1)

#define _LARGEFILE64_SOURCE 1
#define _FILE_OFFSET_BITS 64

我认为在某些操作系统上将off_t的大小增加到64位