본문 바로가기

My Study/Function

CreateFile

HANDLE WINAPI CreateFile(
  __in      LPCTSTR lpFileName,
  __in      DWORD dwDesiredAccess,
  __in      DWORD dwShareMode,
  __in_opt  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  __in      DWORD dwCreationDisposition,
  __in      DWORD dwFlagsAndAttributes,
  __in_opt  HANDLE hTemplateFile
);

파일 열때 사용하는 함수

lpFileName : 개방(Open)할 파일 이름을 지정한다.

dwDesiredAccess : 읽기/쓰기 모드를 지정한다. or(|)연산으로 결합가능
                                  GENERIC_READ 읽기 모드 지정
                                  GENERIC_WRITE 쓰기 모드 지정

dwShareMode : 파일 공유방식을 지정한다.
                                  0   다른 프로세스에 절대 공유 불가! 이미 개방된 파일은 중복 개방 불가
                                  FILE_SHARE_READ  다른 프로세스에서 이 파일에 동시 읽기 접근 가능
                                  FILE_SHARE_WRITE 다른 프로세스에서 이 파일에 동시 쓰기 접근 가능.
lpSecurityAttributes : 보안 속성을 지정. 핸들을 자식 프로세스에게 상속할 것인지 말 것인지를 결정
                              디폴트 보안 속성을 지정하고자 하는 경우 NULL

dwCreationDisposition : 파일이 생성되는 방법을 지정한다.
                                  CREATE_ALWAYS  항상 새 파일을 생성한다
                                  CREATE_NEW  새 파일 생성, 같은 이름의 파일이 존재하면 생성 실패
                                  OPEN_ALWAYS  기존 파일 개방, 없으면 새로 생성
                                  OPEN_EXISTING  기존 파일 개방, 존재하지 않으면 함수 호출 실패
                                  TRUNCATE_EXISTING 기존 파일의 내용 지우고 개방, 파일이 존재하지 않으면 호출 실패

dwFlagsAndAttributes : 파일의 특성 정보를 설정한다. 둘 이상의 특정 정보가 OR연산자 통해 지정 가능
                                  기본적으로 FILE_ATTRIBUTE_NORMAL이라는 값을 사용

hTemplateFile : 기존에 존재하는 파일과 동일한 특성을 가지는 새 파일을 만들 때 사용되는 전달 인자이다.
                        일반적으로 NULL

성공하면 파일의 핸들이 반환!
실패 시 INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)

'My Study > Function' 카테고리의 다른 글

WriteFile  (0) 2010.02.24
ReadFile  (0) 2010.02.24
CreateProcess  (0) 2010.02.24
fopen의 정체  (0) 2010.02.24
WaitForSingleObject 함수  (2) 2009.12.09