c++ - 使用 C++ STL 读取大于 4GB 的文件

标签 c++ file-io iostream

几周前,我使用 std::ifstream 读取一些文件,但在打开时立即失败,因为文件大于 4GB。当时我找不到一个像样的答案来解释为什么它被限制为 32 位文件大小,所以我使用 native OS API 编写了自己的。

那么,我的问题是:有没有办法使用 std::ifstream/std::ostream 来处理大于 4GB 的文件(IE:标准 c++)

编辑:使用 VC 9 编译器 (Visual Studio 2008) 中的 STL 实现。 EDIT2:当然必须有标准的方法来支持大于 4GB 的文件大小。

最佳答案

显然,这取决于库如何实现 off_t

#include <streambuf>
__int64_t temp=std::numeric_limits<std::streamsize>::max();

告诉你当前的最大值是多少。

STLport支持更大的文件。

关于c++ - 使用 C++ STL 读取大于 4GB 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/293672/

相关文章:

c++ - 使用 cin 跳过预期的字符,如 scanf()

C++重载函数问题

c++ - 在 ns 2.34 (Jiazi YI ns 2.29) 上添加 mp-olsr 时出现编译错误

c++ - 为什么我的 bmp 编写器不工作?

c - 卡在二维数组上,将指针插入文件中的字符串

c++ - 为什么我需要同时包含 iostream 和 fstream header 才能打开文件

C++,boost asio,接收空终止字符串

c++ - 如何使指针指向 NULL

arrays - Clojure 表示字节数组

c++ - 使用 cin >> 来处理错误