当文件大小超过4GB时,如何在C中获取文件的文件大小?
ftell返回一个4字节的有符号长整数,将其限制为两个字节。 stat有一个类型为off_t的变量,它也是4个字节(不确定符号),所以最多它可以告诉我4gb文件的大小。
如果文件大于4 GB,该怎么办?
答案 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位