본문 바로가기
Programming

ReadFile/WriteFile

반응형
BOOL ReadFile( //반환값
  HANDLE hFile, //파일핸들
  LPVOID lpBuffer, //읽은 데이터를 저장할 버퍼
  DWORD nNumberOfBytesToRead,//읽을 최대 바이트수 
  LPDWORD lpNumberOfBytesRead, //실제로 읽은 바이트 수를 받을 변수의 주소
  LPOVERLAPPED lpOverlapped
); 

BOOL WriteFile(
  HANDLE hFile,
  LPCVOID lpBuffer,
  DWORD nNumberOfBytesToWrite,
  LPDWORD lpNumberOfBytesWritten,
  LPOVERLAPPED lpOverlapped
);

에러 확인 GetLastError API 사용
이 API는 호출할때마다 실제 하드디스크와 같은 매체에 접근하지 않고 API 내부에서 적당한 크기의 버퍼를 확보해서 버퍼를 읽고 쓰게 한다..디스크 접근을 줄여 효율을 향상 시키나 파일 내용이 동기화 되지 않는 문제점이 생길수 있다.
CreateFile API에서 파일을 열때 FILE_FLAG_NO_BUFFERING 플래그를 지정할수 있으나 읽고 쓰는 바이트수와 버퍼의 주소는 섹터 크기의 정수배만 가능하다는 조건이 붙는다.
기록시의 데이타 손실이 문제라면 FlushFileBuffers API 추천

반응형

'Programming' 카테고리의 다른 글

CE Window에서 Dock & Layout 처리를 간단히 해주는 ScreenLib  (0) 2009.08.28
ISO 9126 -펌  (0) 2009.07.09
2008 설치  (0) 2009.06.23
참고용..mysql 명령어 - 퍼옴  (0) 2009.06.22
Window Mobile (CE)에 QtWebkit 올리기  (0) 2009.06.01