我试图找到一个明确的答案而不能,所以我希望有人知道.
我正在Linux(32位操作系统)上使用GCC 4.x开发一个C++应用程序.此应用程序需要能够读取大小> 2GB的文件.
我真的想使用iostream的东西和FILE指针,但我找不到大文件#defines(_LARGEFILE_SOURCE,_LARGEFILE64_SOURCE,_FILE_OFFSET_BITS = 64)对iostream标头有什么影响.
我正在编译32位系统.任何指针都会有所帮助.
我已经以二进制模式打开了一个文件,下面的操作给出x的负值。我打开的文件大小约为2.5 GB。
infile.seekg(0, ios::end);
__int64 x = infile.tellg();
Run Code Online (Sandbox Code Playgroud)
我需要infile读取字节(无符号字符),因此我uifstream通过执行以下操作将其定义为:
typedef basic_ifstream<unsigned char, std::char_traits<unsigned char> > uifstream;
Run Code Online (Sandbox Code Playgroud)
这基本上是标准的ifstream,但使用unsigned chars代替chars。
编辑:我正在使用Visual Studio 2005,并将uofstream更正为uifstream。