공부/API
Paging File을 이용하여 데이터값 공유하기
잠수함토끼
2008. 9. 7. 16:46
Memshare01.cpp
Memshare02.cpp
#undef UNICODE #include#include #define MAXSHAREMEMORY 1024 CHAR buf[256]; void MMFFunction() { //CreateFileMapping: Paging File에 공유영역을 설정하여 데이터를 공유하고 있다. HANDLE hMMF=CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, MAXSHAREMEMORY, "MEMAHREMAPPING"); if(hMMF ==INVALID_HANDLE_VALUE) { printf("CreateFileMapping error\n"); return; } //MapViewOfFile: 파일의 일부분(view)을 매핑한다. PCHAR ptr= (PCHAR)MapViewOfFile(hMMF, FILE_MAP_ALL_ACCESS, 0, 0, MAXSHAREMEMORY); if(ptr==NULL) { printf("MapViewOfFile error\n"); return; } printf("MMF Pointer :%d\n",ptr); // 같지 않다. while(1){ printf("input->: "); scanf("%s",buf); wsprintf(ptr,"%s",buf); printf("\n%s\n",buf); } } int main(void) { MMFFunction(); return 0; }
#undef UNICODE #include#include #define MAXSHAREMEMORY 1024 CHAR buf[256]; void MMFFunction() { //CreateFileMapping: Paging File에 파일 매핑 오브젝트를 만들어 값을 공유한다. HANDLE hMMF=CreateFileMapping(INVALID_HANDLE_VALUE, //==0xFFFFFFFF NULL, PAGE_READWRITE, 0, MAXSHAREMEMORY, "MEMAHREMAPPING"); if(hMMF ==INVALID_HANDLE_VALUE) { printf("CreateFileMapping error\n"); return; } PCHAR ptr= (PCHAR)MapViewOfFile(hMMF, FILE_MAP_ALL_ACCESS,//FILE_MAP_WRITE | FILE_MAP_READ 0, 0, MAXSHAREMEMORY); if(ptr==NULL) { printf("MapViewOfFile error\n"); return; } printf("MMF Pointer :%d\n",ptr); // 같지 않다. while(1){ printf("input> "); scanf("%s",buf);//dummy buffer printf("\n%s\n",ptr);//매핑 파일에서 값을 출력한다. } } int main(void) { MMFFunction(); return 0; }