BOOL ReadFile(
HANDLE hFile, ----①
LPVOID lpBuffer, ----②
DWORD nNumberOfBytesToRead, ------③
LPDWORD lpNumberOfBytesRead, -----④
LPOVERLAPPED lpOverlapped ------⑤
);
함수 설명 :
파일로부터 데이퍼를 읽는다. 주로 동기적인 입력에 사용하기 때문에 데이터를 완전히 읽기 전에는 리턴하지 않는다. 비동기 입력에 사용할 경우는 즉시 리턴한다. 파일 포인터 위치에서부터 데이터를 읽으며 다 읽은 후에는 실제 읽은 바이트 수만큼 파일 포인터를 이동시켜 준다. 단, 비동기 입출력 중에는 직접 파일 포인터를 이동시켜 주어야한다.
① hFile :
데이터를 읽고자 하는 파일의 핸들이다. 이때는 파일을 열때 GENERIC_READ Flag로 열어야한다.
② lpBuffer :
읽는 데이터를 저장할 버퍼의 포인터이다. 크기가 충분하여야 한다.
③ nNumberOfBytesToRead :
읽고자 하는 바이트 수이다.
④ lpNumberOfBytesRead :
실제로 읽은 바이트 수를 리턴받기 위한 충력용 인수이다. ReadFile가 호출되면 이 값을 0으로 만들며 비동기 입출력을 하지 않을 경우에는 이값을 NULL로 중 수 없으며 반드시 DWORD형 변수에 대한 포인터를 제공하여야 한다.
⑤ lpOverlapped :
비동기 입출력을 위한 OVERLAPPED 구조체의 포인트이다. 파일을 열떄 Flag 값을 FILE_FLAG_OVERLAPPED로 열었다면 반드시 이 값을 제공 하여야 한다. 비동기를 사용하지 않는다면 NULL을 주면 된다.
참고 : soen.kr
'Programming > Windows&C#' 카테고리의 다른 글
[Windows/WinAPI] MoveFile() , MoveFileEx() (0) | 2013.10.15 |
---|---|
[Windows/WinAPI] WriteFile() (0) | 2013.10.15 |
[Windows/WinAPI] CreateFile() (0) | 2013.10.14 |
[Windows/WinAPI] LoadLibrary, GetProcAddress 사용 (실습5) (2) | 2013.10.12 |
[Windows/WinAPI] main ,_tmain간의 차이 (0) | 2013.10.09 |