2013-07-17 4 views
0

Windows에서 파일 매핑을 올바르게 열고/사용하여 파일 매핑없이 다른 프로세스에서 파일 매핑을 쓰는 방법.파일 매핑 열기 (Windows)

예를 들어 프로세스 A는 큰 로그 파일을 작성하고 파일을 열고 끝에 새 데이터를 쓰거나 새 데이터로 다시 씁니다.

프로세스 B는 병렬로이 파일을 파일 매핑으로 열고 때때로 파일 매핑을 닫지 않고 업데이트 용 메모리 페이지를 읽습니다.

왜 내가 위에서 설명한 논리를하고 싶은지 묻지 마십시오. 그 일을 할 수 있는지 알아야합니까?

+0

일반적으로 [Boost.Interprocess] (http://www.boost.org/doc/libs/1_54_0/doc/html/interprocess/sharedmemorybetweenprocesses.html#interprocess.sharedmemorybetweenprocesses.mapped_file) 라이브러리를 사용합니다. 사용하기 쉽고 멀티 플랫폼입니다. – Johny

답변

1

일반적인 파일 시스템 기능 (ReadFile, WriteFile 등)으로 업데이트하는 파일과 관련된 파일 매핑 개체가 중지되지 않습니다. 그러나 결과를 좋아하지 않을 것입니다. Windows는 다른 프로세스가 파일 매핑 기능을 통해 파일을 업데이트하는 경우 파일 매핑보기가 일관성이 있음을 보장합니다. 파일이 다른 방법으로 업데이트 될 때 보장하지 않습니다. 실제로 파일 매핑 뷰에 표시되는 내용이 파일의 실제 내용과 일치하지 않을 수도 있습니다.

네, 그렇게 할 수 있습니다. 그러나 맵핑 된 뷰가 실제로 파일에있는 것임을 보장 할 수있는 방법이 없기 때문에 그렇게해서는 안됩니다.

+0

짐 감사합니다! – Edward83