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

C 如何获取大(>;4 GB)文件的文件大小?,c,large-files,filesize,C,Large Files,Filesize,当文件大小大于4gb时,如何在C中获取文件大小 ftell返回一个4字节的有符号长,将其限制为两个字节。stat有一个off_t类型的变量,也是4字节(不确定符号),所以它最多可以告诉我4gb文件的大小 如果文件大于4 gb怎么办?在使用glibc的Linux上,ftell会返回一个关闭;取决于标志off\t可以是32位,也可以是64位 在Linux上,您可以通过执行getconf LFS\u CFLAGS(LFS代表大文件支持)来获得适当的标志以关闭64位。在Windows上,您使用的是Get

当文件大小大于4gb时,如何在C中获取文件大小

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


如果文件大于4 gb怎么办?

在使用glibc的Linux上,ftell会返回一个
关闭
;取决于标志
off\t
可以是32位,也可以是64位


在Linux上,您可以通过执行
getconf LFS\u CFLAGS
(LFS代表大文件支持)来获得适当的标志以关闭64位

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

试试看

#define _LARGEFILE64_SOURCE 1
#define _FILE_OFFSET_BITS 64

我认为这会将某些操作系统上的off\t大小增加到64位

在哪个操作系统上?这不是完全标准化的。这里:这可以帮助您:glibc文档显示
ftell
返回
long int
ftello
返回
off\t