【发布时间】:2016-06-02 09:50:14
【问题描述】:
我管理一个大小为 2.15GB 的 PDF 文件,我用 fopen 打开文件,我使用_fseeki64 和_ftelli64 来获取或更新文件中的指针位置,它可以正常工作。
我使用fread 来读取pdf 文件。通常它可以正常工作,但是当读取指针位于文件末尾附近时,fread 会得到错误的 EOF 字符。
那么,我怎样才能正确读取这个大 PDF 文件。
注意:我对小于 2GB 的文件使用相同的源代码,它可以正常工作。
【问题讨论】:
-
您能否将代码简化为能够可靠地演示问题的简短程序?除非您这样做,否则没有人可以提供帮助,因为不知道您做错了什么。
-
"当读取指针位于文件末尾附近时,fread 得到错误的 EOF 字符" - 你能详细说明一下吗?
-
你能保证在读入文件时进程没有耗尽可用内存吗?
-
@DavidSchwartz
_fseeki64似乎仅限 Windows -
@LưuVĩnhPhúc:在 32 位系统上处理大小为 2.15GB 的文件时,size_t 不会成为问题。