프로세스간에 공유되는 메모리 풀을 생성 할 수 있습니까? 예를 들어, Win32에서 CreateFileMapping
을 INVALID_HANDLE_VALUE
으로 사용하여 메모리 덩어리를 힙으로 사용할 수 있습니까?(Win32) 프로세스 간 힙 공유
은 내가 new
/delete
사업자 싶습니다 (또는 malloc
/free
)는 그 덩어리에서/무료 메모리를 할당 (그리고 그들의 일반적인 힙 관리를 할) 수 있습니다.
감사합니다.
EDIT : 실제 문제는 간단합니다. 지금은 new
연산자를 사용하여 다양한 대규모 구조를 일반적으로 할당하지만, 프로세스가 닫힌 후에도 이러한 구조를 유지하려고합니다. 그래서 거의 유일한 기능을 메인 프로세스가 닫힐 때 메모리를 보유하는 다른 프로세스를 만들고 싶습니다.
는, 나는 주요 과정에서, 대신 프로세스의 힙의 청크를 사용하도록 구조를 할당하는 데 사용하는 new
/delete
에게, 보조 과정에서 CreateFileMapping
와 공유 메모리의 덩어리를 만든 것입니다.
주 프로세스가 다시 실행 된 후에 구조를 복구하려면 매핑 된보기의 다른 시작점이 MapViewOfFile
인 결과를 반영하여 모든 포인터에 고정 된 양을 추가합니다.
예, 파일 매핑 위에 고유 한 힙 관리자를 구현하는 경우 –
동기화를 잊지 마십시오. –
@Roman 제 질문은 정확하게 malloc/new에서 기존 힙 관리 로직을 사용하고 처음부터 구현하지 않는 것입니다. – SemMike