본문 바로가기

IT/MFC&WINAPI

[MFC&WINAPI] 파일 입출력 createFIle & readFile & writefile

반응형
createfile이 handle을 반환한다. 이 handle을 이용해서 read 와write을 한다.
HANDLE CreateFile(
LPCTSTR lpFileName, 
DWORD dwDesiredAccess, 
DWORD dwShareMode, 
LPSecurity_ATTRIBUTES lpSecurityAttributes, 
DWORD dwCreationDisposition, 
DWORD dwFlagsAndAttributes,
Handle hTemplateFile
);
첫번째 인자 LPCTSTR lpFileName : 파일이므, 경로
두전쨰 인자 DWORD dwDesiredAccess : 파일 접근 타입, GENERIC_READ,GENERIC_WRITE...등등
세번째 인자 DWORD dwShareMode : 열려진 파일의 공유 모드 , FILE_SHARE_READ,FILE_SHARE_WRITE,0(0은 NO공유)
네번째 인자 LPSecurity_ATTRIBUTES lpSecurityAttributes : 자식 프로세스에 상속 여부 결정
다섯번째 인자 DWORD dwCreationDisposition : 파일 생성 모드 설정(CREATE_NEW,CREATE_ALWAYS....)
여섯번째 인자 DWORD dwFlagsAndAttributes : 파일 옵션 설정(FILE_ATTRIBUTE_READONLY : 읽기전용모드....etc)
일곱번째 인자 Handle hTemplateFile : 새로 만드는 파일에 대한 속성값 설정 (보통 NULL) 리턴값 성공시 : 파일의 핸들 실패시 : -1(INVALID_HANDLE_VALUE의 상수 )
BOOL WriteFile(
HANDLE hFile,
LPCVOID lpBuffer,
DWORD nNumberOfBytesToWrite,
LPDWORD lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped
);
첫번째 인자 : 대상 파일의 핸들,
두번째 인자 : 데이터가 들어있는 버퍼
세번째 인자 : 쓰고자 하는 바이트 수,
네번쨰 인자 : 실제로 쓰여진 바이트 수를 저장하기 위한 DWORD형 변수포인터
다섯번째 인자 : 비동기 입출력시 설정하는 변수
BOOL ReadFile(
HANDLE hFIle,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
LPDWORD lpNumberOfBytesRead,
LPOVERLAPPED lpOverlapped
);

첫번째 인자 : 읽을 대상 파일의 핸들러 변수
두번째 인자 : 데이터를 저장할 버퍼
세번째 인자 : 읽고자 하는 양 ( 준비된 버퍼보다 더 많은 양을 읽을 수는 없으므로 당연히
세번째 인수는 lpBuffer 보다 크다)
네번째 인자 : 실제로 읽혀진 양
다섯번째 인자 : 비동기 입출력시 사용
BOOL CloseHandle(
HANDLE hObject
);

'IT > MFC&WINAPI' 카테고리의 다른 글

[MFC] createThread 의 원형  (0) 2011.08.22