Programming/Win_API2012.09.03 23:13

 


 

CreateFile()

WriteFile()

ReadFile()

 


 

 

- CreateFile() : 파일 오픈

 

더보기

 

 

 

- WriteFile() : 파일에 쓰기

- ReadFile() : 파일 읽기

 

더보기

 

 

ex)

 

#include <Windows.h>
#include <stdio.h>
#include <string.h>

 

int main()
{
 HANDLE hFile;
 DWORD dwWrite, dwRead;
 char wdata[20] = "Hello World";
 char rdata[20];

 

 hFile = CreateFile(TEXT("test.txt"),GENERIC_READ|GENERIC_WRITE,0  ,NULL,CREATE_ALWAYS,

FILE_ATTRIBUTE_NORMAL,NULL);

 

 if(hFile == INVALID_HANDLE_VALUE)
   return 0;

 

 WriteFile(hFile, wdata, strlen(wdata), &dwWrite, NULL);
 ReadFile(hFile, rdata, dwWrite, &dwRead, NULL);

 CloseHandle(hFile);

 printf("%s",rdata);

 

}

 

위와 같이 예제를 실행 해보면 ReadFile에서 rdata 버퍼 시작점에서 read하지 않고 뒷부분부터 read해서 아래와 같이 이상한 결과가 나왔다. 무슨 문제인지 ..........

 

 

 

 

 

저작자 표시
신고
Posted by bbolmin

댓글을 달아 주세요

  1. .

    파일함수에는 파일포인터가 존재하구요... 일종의 커서 비슷하게 생각하면 되요.
    WriteFile시에 파일포인터가 기록한 다름 부분으로 이동하기 때문에
    뒷부분을 읽어버린거에요.

    SetFilePointer나 SetFilePointerEx로 파일포인터를 시작부분으로 옮겨줘야 될거에요.

    2014.07.12 13:27 신고 [ ADDR : EDIT/ DEL : REPLY ]


티스토리 툴바