Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium


Using Hard Disk Space as Ram

Posted on 2004-10-21
Medium Priority
Last Modified: 2010-04-01
Is there anyway in C++ to use the hard disk as RAM. Maybe even pre-allocate a block of space say like 2 - 5GB. If anyone can show me how or send me a tutorial it would help out tremendously.

I realize that here might be a slower access time but can anyone also point out any other ill effects that doing this may have with the code sample or tutorial.

Thanks in advance.
Question by:alfonzocarson
  • 3
  • 2

Expert Comment

ID: 12373310
What you wanna do is use binary file I/O, and pretty much have some kind of temp file in your directory which contains whichever memory information you want to store...

Check this page, it shows you how to insert data and access data at any position you want inside a file.


This is just the File I/O part.  You can get a lot more complicated than that.. You could use a hash table to tell you where to write to, you could have page tables, etc, etc.  How you decide to implement it depends on what kind of data you are storing and for what.  If you want to give more detail about the data, maybe we can help you more.

Author Comment

ID: 12373365

I'm trying to create a caching engine. But I don't want to load 500,000 records into RAM on the server. But I would like to have all of the benefits of memory resident data access. Will this tutorial get me there. There server will have 60+ GB of hard disk space on them, as they really aren't being used for anything other than a remoting service which makes calls to a SQL Database (on a separate machine).
LVL 30

Expert Comment

ID: 12374245
You can use map file API functions to map a file to memory.

What is your OS?

If you're using Windows, you can use the MapView API functions.
If you're using UNIX/Linux, you can use POSIX map file functions.
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

LVL 30

Accepted Solution

Axter earned 500 total points
ID: 12374275
See following link for file mapping example that works with Windows, UNIX, and Linux



Author Comment

ID: 12374443
Is this file going to be stored in memory or on the hard disk. I'm not up to speed on memory mapped files.
LVL 30

Expert Comment

ID: 12379195
>> Is this file going to be stored in memory or on the hard disk. I'm not up to speed on memory mapped files.

The file is stored on the hard disk, but you access the file data via a memory buffer.

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Written by John Humphreys C++ Threading and the POSIX Library This article will cover the basic information that you need to know in order to make use of the POSIX threading library available for C and C++ on UNIX and most Linux systems.   [s…
Introduction This article is a continuation of the C/C++ Visual Studio Express debugger series. Part 1 provided a quick start guide in using the debugger. Part 2 focused on additional topics in breakpoints. As your assignments become a little more …
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.
Suggested Courses

579 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question