プロセス間で共有されるメモリ プールを作成し (たとえばCreateFileMapping
、INVALID_HANDLE_VALUE
Win32 の場合)、そのメモリのチャンクをヒープとして使用することは可能ですか?
new
/delete
演算子 (またはmalloc
/ free
) がそのチャンクからメモリを割り当て/解放する (そして通常のヒープ管理を行う) ことを望みます。
ありがとう。
編集:私の本当の問題は単純です:今のところ、new
演算子を使用してさまざまな大きな一連の構造体を通常どおり割り当てますが、プロセスが閉じた後もこれらの構造体を保持したいと考えています。したがって、メインプロセスが閉じたときにメモリを保持することだけがほぼ唯一の機能である別のプロセスを作成したいと思います。
そのためにCreateFileMapping
、補助プロセスで共有メモリのチャンクを作成し、メイン プロセスで、プロセスのヒープの代わりにそのチャンクを使用するように構造体の割り当てに使用することを伝えnew
ます。delete
メイン プロセスが再起動された後に構造を復元するには、すべてのポインターに一定量を追加しMapViewOfFile
ます。