有没有办法让我可以直接在内存中打开并加载文件? 我有很多遗留代码打开网络上存在的文件,然后呢 寻找并读取此文件。我想避免读取和搜索网络。 因此,如果我可以将文件加载到内存中,当我打开它时,我可以进行有效的搜索。 有任何想法吗? 我在Linux上用C工作。
答案 0 :(得分:2)
您可以使用mmap
功能,或将open
和read
全部放入已使用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