Кэширование файлов в оперативной памяти С/С++?
================================================

 В общем, столкнулся с проблемой, не могу найти ничего.  

  

Предисловие:  

Работал с PostgreSQL. При создании инндекса в диспетчере задач видно, что PostgreSQL оперирует с данными на диске ( нагрузка на диск) со скоростью десятки Гб в сек. ( но ведь у меня HDD)  

  

Кажется , что понятно, данные лежат на диске, но закэшированы в оперативке. А мне как раз надо нечто подобное  

  

Вопрос:  

Как создать файл в оперативной памяти так, чтобы, в случае когда не хватает места в оперативке, он буфферизировал в диск.  

А лучше даже спрошу по другому, как хранить массив данных ( уже не файл) в оперативной памяти с буфферизацией на диск  

  

Есть ли для этого какие-то библиотеки? 

 Это называется file mapping. Создаётся отображение файла в оперативную память (map view of file). И дальше с этой областью адресов программа работает как с обычной оперативной памятью, которую операционная система при необходимости синхронизирует с файлом на диске.