在内存中打开和加载文件的方法

时间:2011-09-23 12:11:51

标签: c linux file-io

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

2 个答案:

答案 0 :(得分:2)

您可以使用mmap功能,或将openread全部放入已使用malloc分配的缓冲区中。

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

答案 1 :(得分:2)

如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