4
我想要的僅僅是打開文件作爲內存映射文件來讀取 - 爲了在將來以更快的速度訪問它(例如:我們打開文件讀取它結束,等待和讀取一遍又一遍)同時我想要該文件可以由其他程序修改,當它修改它時,我想我的ifstream也修改。如何用boost iostreams(或者提升進程間)做這樣的事情?我們是否可以放大操作系統 - 嘿,這個文件應該是所有應用程序的內存映射?Boost iostream:如何將ifstream轉換爲內存映射文件?
因此,我想這樣的代碼:
#include <iostream>
#include <boost/iostreams/device/mapped_file.hpp>
#include <boost/iostreams/stream.hpp>
using namespace boost::iostreams;
int main(int argc, char **argv)
{
stream <mapped_file_sink> out;
try
{
mapped_file_params p("one.txt");
p.new_file_size = 1024 * sizeof (char);
out.open(mapped_file_sink(p), std::ios_base::out | std::ios_base::binary);
}
catch (const std::exception &e)
{
std::cout << e.what() << std::endl;
return 2;
}
std::cin.get();
return 0;
}
所以它打開或創建文件,將其放入RAM。但我無法從任何其他程序訪問它(我不能編輯和保存,但我可以打開)=(如何使文件可以從其他程序編輯?
目前還不清楚你想要做什麼以及你嘗試過什麼。例如,當你說「我不能編輯和保存」時,你是什麼意思?你是否試圖使用編輯器(哪一個?)並得到一個錯誤(哪一個?以及何時?)請準確地描述:(1)你的行爲(2)結果和(3)你試圖獲得的結果。 –