【发布时间】:2022-06-15 21:51:04
【问题描述】:
我想知道如何用 C 打开大文件
我很确定您可以使用:SHM_OPEN 或 fopen()。 我用 fopen() 编写了一个文本编辑器,如果我尝试打开一个 10GB 的 txt 文件,它会显示:KILLED。
所以我的假设是使用 shm_open 以便我们可以访问共享内存。我不需要代码,我只是想知道我对 shm_open 的假设是否正确。如果没有,有什么解决办法?
【问题讨论】:
-
一次读一部分。
-
也许可以通过more creative 了解如何管理这么大的文本文件。
-
打开不是问题。问题在于您存储正在阅读的内容的位置以及一次阅读的内容。
-
为此使用共享内存是没有意义的。唯一的问题是您希望如何访问文件内容。如果您可以按顺序处理它,那么您可以避免将整个内容读入内存。但是如果你需要整个文件在内存中,那么你可能需要增加默认的动态数据大小限制(这是特定于操作系统的)。