【问题标题】:way to open and load a file in memory在内存中打开和加载文件的方法
【发布时间】:2011-09-23 12:11:50
【问题描述】:

有没有办法可以直接在内存中打开和加载文件? 我有很多遗留代码可以打开网络上存在的文件,然后执行 查找并从此文件中读取。我想避免通过网络进行读取和搜索。 因此,如果我可以将文件加载到内存中,当我打开它时,我可以进行有效的搜索。 有任何想法吗? 我在 Linux 上使用 C 语言工作。

【问题讨论】:

  • mmpa 将返回一个指向加载文件的内存位置的指针。我的旧代码适用于文件指针。然后我需要为此更改大量代码。

标签: c linux file-io


【解决方案1】:

正如 Mat 所说,看看 mmap 函数。 (这可能是更简单的方法) http://linux.die.net/man/2/mmap

如果您更喜欢 malloc,此链接应该可以帮助您: http://www.anyexample.com/programming/c/how_to_load_file_into_memory_using_plain_ansi_c_language.xml

【讨论】:

    【解决方案2】:

    您可以使用mmap 函数,或者将openread 全部使用到您使用malloc 分配的缓冲区中。

    但是请做基准测试。您可能会从这种“手动缓冲”中获得很少(或根本没有)改进。操作系统已经为你做了缓存。

    【讨论】:

    • mmap 链接有些损坏
    猜你喜欢
    • 2010-10-12
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多