如何获取大文件(> 4 GB)的文件大小?
当文件大小大于4gb时,如何在C中获取文件的大小?
ftell 返回 4 字节有符号长整型,将其限制为两个字节。 stat 有一个 off_t 类型的变量,也是 4 个字节(不确定符号),所以它最多可以告诉我 4gb 文件的大小。
如果文件大于 4 GB 怎么办?
How can I get the file size of a file in C when the file size is greater than 4gb?
ftell returns a 4 byte signed long, limiting it to two bytes. stat has a variable of type off_t which is also 4 bytes (not sure of sign), so at most it can tell me the size of a 4gb file.
What if the file is larger than 4 gb?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在使用 glibc 的 Linux 上,ftell 返回一个
off_t
;根据标志off_t
可能是 32 位,也可能是 64 位。在 Linux 上,您可以通过执行
getconf LFS_CFLAGS
(LFS 代表大文件支持)来获取适当的标志以拥有 64 位off_t
。On Linux with glibc, ftell returns an
off_t
; depending on the flagsoff_t
may be 32 bit or may be 64 bit.On Linux, you can get the appropriate flags to have a 64 bit
off_t
by doinggetconf LFS_CFLAGS
(LFS stands for large-file-support).在 Windows 上,您使用的是
GetFileSize[Ex]
。On Windows,
GetFileSize[Ex]
is what you use.尝试一下
,我认为在某些操作系统上将 off_t 的大小增加到 64 位
try
i think that increases the size of off_t to 64 bits on some operating systems