본문 바로가기

Programming/Windows

Memory Mapped File (MMF)

Memory Mapped File (MMF)의 정리는 개념 및 용어를 참고하기 바란다.

구현 방법에 관한 글이다.

 

MMF는 Write하는 부분과 Read하는 부분으로 나뉜다.

먼저 Write하는 부분의 구현 과정은 아래와 같다.

1. 파일의 생성

HANDLE hFile = CreateFile(...)

 

2. 파일 연결 오브젝트 생성

HANDLE hMapFile = CreateFileMapping(hFile, ...)

 

3. 가상 메모리에 파일 연결

char * chContext = (char *)MapViewOfFile(hMapFile, ...)

 

4. 가상 메모리와 파일 연결 해제

UnmapViewOfFile(chContext)

 

5. 파일 연결 오브젝트 해제

CloseHandle(hMapFile)

 

1단계는 생략 가능하다.

생략 시 2단계의 첫번째 Parameter는 INVALID_HANDLE_VALUE로 한다.

3단계에서는 전달할 자료형에 따라 변경하여 사용하면 된다.

 

Read하는 부분의 구현 과정은 아래와같다.

1.연결할 파일 오픈

HANDLE hMapFile  = OpenFileMapping(...)

 

2. 가상 메모리에 파일 연결

char * chContext = (char *)MapViewOfFile(hMapFile, ...)

 

3. 가상 메모리와 파일 연결 해제

UnmapViewOfFile(chContext)

 

4. 파일 연결 오브젝트 해제

CloseHandle(hMapFile)

 

3단계에서는 송신부에서 사용한 자료형으로 수신한다.