CreateFile() 개념


* CreateFile()
- WindowsAPI함수 중에서 파일을 생성하는 가장 기본적인 함수
- 파일을 생성, 기존의 파일 열기, 각종 오브젝트 생성, 열기
- 파이프, 메일슬롯, COM 포트 등의 통신 장치, 디스크장치, 콘솔, 디렉토리
- 성공할경우 파일의 핸들을 리턴. 즉, 사용 후 CloseHandle()로 핸들을 닫아 주어야한다.


* 함수 원형
CreateFile(
 LPCTSTR lpFileName, ------①
 DWORD dwDesiredAccess, -------②
 DWORD dwShareMode, ------③
 LPSECURITY_ATTRIBUTES pSecurityAttributes, -----④
 DWORD dwCreationDisposition, -------⑤
 DWORD dwFlagsAndAttributes, --------⑥
 HANDLE hTemplateFile -------⑦ );

①  IpFileName
 : 생성하고자 하는 파일(또는 오브젝트)의 이름을 지정. 최대 MAX_PATH의 길이로 지정 가능. 경로로 완전경로나 상대경로를 줄 수 있다.

② dwDesiredAccess
 : 파일에 대한 액세스 권한을 지정.


③ dwShareMode
 : 파일의 공유 모드를 지정.
(공유 모드 : 파일이 열려저 있는 상태에서 다른 프로세스가 또 이 파일을 오픈할 때 허가 여부. 만약 다른 프로세스에서 읽을수 없도록 하고싶다면 공유 모드를 지정하지 않아야 한다.)


④ pSecurityAttributes
 : 파일의 보안 속성을 지정하는 SECURITY_ATTRIBUTES 구조체 포인터. 차일드 프로세스로 핸들을 상속할 수 있는지 없는지가 결정된다. NULL일 경우에는 상속이 불가능.

⑤ dwCreationDisposition
 : 파일의 유무를 체크하고 새로 생성할지 말지를 정한다.


⑥ dwFlagsAndAttributes
 : 생성할 파일의 속성 또는 기타 오브젝트의 속정을 지정한다. 파일의 속성은 플래그 조합을 사용할 수 있다.


위 속성과 함께 플래그 지정 가능


⑦ hTemplateFile
 : 생성될 파일의 속성을 제공할 템플릿이다. 보통은 NULL이다.


댓글