c - Fopen 二进制文件失败

标签 c memory-management fopen

我有一个巨大的二进制文件,有 2148181087 字节 (> 2gb)

我正在尝试执行 fopen (file, "r") 但失败了

Can not open: xyz file (Value too large to be stored in data type)

我在手册页上读到当文件大小 > 2gb 时收到 EOVERFLOW 错误。

奇怪的是,我使用了一个不同的输入文件,它也“几乎”与第一个文件一样大 2142884400 字节(也 >2gb),fopen 可以正常工作。

fopen 的文件大小是否有限制,或者是否有其他方法可以解决这个问题?

最佳答案

截止值为 2GB,与您的想法相反,不是 2,000,000,000 (2x10003)。

它是 2,147,483,648 (2x10243)。因此,您的第二个有效文件实际上小于 2GB)。

在计算机世界中,2GB 在硬盘驱动器制造商的心目中只有 2,000,000,000,因此他们可以说他们的磁盘比实际大 :-) - 它让他们说他们的磁盘实际上是 2.1GB。

关于c - Fopen 二进制文件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1746751/

相关文章:

c - 文件读写C

c - 库中函数的 "undefined reference to function"错误

c - 结构指针变为 NULL ? (C)

c - C中的i++和++i到底有什么区别?

ios - 内存在 iOS 模拟器中释放,但在设备 (ipad) 上未释放

java - Java中的内存主机和内存参数xms和xmx之间的关系

c - Memset 未将 char 指针归零

c - free()之前是否需要检查指针是否为空

c - 将一个字节写入文件然后读取相同的字节是不一样的

c - 在 C 中作为用户输入的文件路径