几周前,我使用 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/