반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

폴크(FOLC)

데이터 공유 방법 ( 동일 PC ) 본문

C, C++, MFC/C, C++, MFC 테크닉

데이터 공유 방법 ( 동일 PC )

folcjin 2023. 6. 5. 10:27
728x90
반응형

# 일반적으로 프로세스간의 데이터를 공유하는 방법
-> IPC : Inter-Process Communication
- 윈도우 메시지 전달 방법
- TCP/IP 통신 이용 방법
- 공유 메모리 이용 방법
- 공유 파일 이용 방법
- 등등

# 2개의 PC에서 특정한 데이터를 공유 하고자 하는 경우에 이용한다.
-> 공유 파일 이용 방법
-> CFile 클래스 이용

# 소스 코드
struct SHAREDFILEDATA
{
   int AAA;
   int BBB;
};

- 데이터 변경
CString strFileName = _T("D:\\SharedMemFile.XXX");

CFile *pFileMem = new CFile;
if (pFileMem)
{
   if (pFileMem->Open(strFileName, CFile::modeCreate | CFile::modeReadWrite) == TRUE)
   {
      pFileMem->Write(&sdata, sizeof(SHAREDFILEDATA));
      pFileMem->Close();
   }
delete pFileMem;
}


- 데이터 읽기
CString strFileName = _T("D:\\SharedMemFile.XXX");

CFile *pFileMem = new CFile;
if (pFileMem)
{
   if (pFileMem->Open(strFileName, CFile::modeCreate | CFile::modeReadWrite) == TRUE)
   {
      pFileMem->Read(&sdata, sizeof(SHAREDFILEDATA));
      pFileMem->Close();
   }
delete pFileMem;
}

만약, 데이터 변경을 막아서 유일하게 데이터를 관리하고자 하는 경우에는
-> 한쪽에서는 CFile::modeWrite 으로 설정하고 다른 한쪽에서는 CFile::modeRead | CFile::shareDenyWrite 하여 한쪽 방향으로 데이터가 흐를수 있도록 설정

 

파일 접근 옵션
CFile::modeCreate
-> 파일 생성. 같은 이름을 가진 파일이 있다면 크기를 0으로 변경
CFile::modeNoTruncate
-> 같은 이름을 가진 파일이 있을 경우 크기를 0으로 바꾸지 않고 파일만 Open
CFile::modeRead
-> 읽기 전용 모드로 파일을 열거나 생성
CFile::modeReadWrite
-> 읽기와 쓰기 모드로 파일을 열거나 생성
CFile::modeWrite
-> 쓰기 전용 모드로 파일을 열거나 생성
CFile::shareDenyNone
-> 다른 프로세스에게 파일에 대한 읽기와 쓰기를 허용
CFile::shareDenyRead
-> 다른 프로세스에게 파일에 대한 읽기를 금지
CFile::shareDenyWrite
-> 다른 프로세스에게 파일에 대한 쓰기를 금지
CFile::shareExclusive
-> 다른 프로세스에게 파일에 대한 읽기와 쓰기를 금지

728x90
반응형
사업자 정보 표시
사업자 등록번호 : -- | TEL : --