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

发布于 2024-12-06 07:02:02 字数 148 浏览 0 评论 0原文

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

Is there a way such that I can open and load a file directly in memory?
I have lot of legacy code that opens a file present on network, and then does
seeks and reads from this file. I want to avoid the reads and seeks over the network.
Hence, if I could load the file in memory, when I open it, I could have efficient seeks.
Any ideas?
I'm working wtih C on Linux.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

屋檐 2024-12-13 07:02:02

正如 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

As Mat said, have a look at the mmap function. (It's probably the easier way)
http://linux.die.net/man/2/mmap

If you prefer malloc, this link should help you:
http://www.anyexample.com/programming/c/how_to_load_file_into_memory_using_plain_ansi_c_language.xml

划一舟意中人 2024-12-13 07:02:02

您可以使用 mmap 函数,或者简单的open并将其全部read到您用malloc分配的缓冲区中。

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

You could use the mmap function, or plain open and read it all into a buffer you've allocated with malloc.

But please do benchmark. You might get very little (or none at all) improvement from this "manual buffering". The OS already does caching for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文