我试图找到一个明确的答案而不能,所以我希望有人知道.
我正在Linux(32位操作系统)上使用GCC 4.x开发一个C++应用程序.此应用程序需要能够读取大小> 2GB的文件.
我真的想使用iostream的东西和FILE指针,但我找不到大文件#defines(_LARGEFILE_SOURCE,_LARGEFILE64_SOURCE,_FILE_OFFSET_BITS = 64)对iostream标头有什么影响.
我正在编译32位系统.任何指针都会有所帮助.
libstdc++
编译时已经为您决定了这一点,通常取决于是否_GLIBCXX_USE_LFS
定义了c++config.h
.
如果有疑问,请libstdc++.so
通过readelf -r
(或通过strings
)传递您的可执行文件(或者,如果动态链接它),并查看您的二进制文件/ libstdc++
链接fopen
/ fseek
/等.或fopen64
/ fseek64
/等.
UPDATE
只要您不需要/尝试fseek
或ftell
(您只是读取或写入流),您就不必担心2GB限制.