gpt4 book ai didi

c - 如何在没有内存错误的情况下读取堆中大文件的内容

转载 作者:行者123 更新时间:2023-11-30 15:00:41 25 4
gpt4 key购买 nike

我问的问题非常简单。可以说我想读取一个大文件(6GB)而不用耗尽堆内存。我该怎么做呢。 (我主要问的是是否有一种方法可以读取文件的一部分,清除缓冲区并读取文件的下一部分)

最佳答案

内存容量和可用性取决于平台和操作系统。

某些操作系统允许内存映射文件,操作系统在其中管理将数据读取到内存中。

无溢出的读取是通过使用 block 读取(C 中的 fread 和 C++ 中的 istream::read)来完成的。您告诉输入函数要在 block 中读取多少内容,该函数将返回实际读取的数量。 block 大小应小于或等于为数据分配的内存。下一次读取将从文件中的下一个位置开始。循环执行以读入所有数据。

此外,验证是否有理由同时将所有数据保存在内存中。大多数程序仅在有限的时间内保存一小部分数据。

关于c - 如何在没有内存错误的情况下读取堆中大文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41942698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com