다음을 통해 공유


_creat, _wcreat

새 파일을 만듭니다. _creat_wcreat 이상 사용되지 않습니다. 대신 사용합니다_sopen_s_wsopen_s.

구문

int _creat(
   const char *filename,
   int pmode
);
int _wcreat(
   const wchar_t *filename,
   int pmode
);

매개 변수

filename
새 파일의 이름입니다.

pmode
권한 설정

반환 값

이러한 함수는 성공하는 경우 생성된 파일에 파일 설명자를 반환합니다. 그렇지 않으면 함수는 -1을 반환하고 다음 표와 같이 설정합니다 errno .

errno 설명
EACCES filename은 기존의 읽기 전용 파일을 지정하거나 파일 대신 디렉터리를 지정합니다.
EMFILE 사용 가능한 추가 파일 설명자가 없습니다.
ENOENT 지정된 파일을 찾을 수 없습니다.

이 경우 filename 이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다.NULL 계속해서 실행하도록 허용한 경우 이러한 함수는 errnoEINVAL 로 설정하고 -1을 반환합니다.

이러한 코드 및 기타 반환 코드에 대한 자세한 내용은 , _doserrno_sys_nerr_sys_errlist를 참조하세요.errno

설명

_creat 함수는 새 파일을 만들거나 기존 파일을 열어 자릅니다. _wcreat_creat의 와이드 문자 버전이며, filename 에 대한 _wcreat 인수는 와이드 문자열입니다. 그렇지 않으면_wcreat_creat 이 동일하게 작동합니다.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 변경하려면 CRT의 전역 상태를 참조하세요.

일반 텍스트 루틴 매핑

Tchar.h 루틴 _UNICODE_MBCS 정의되지 않음 정의된 _MBCS 정의된 _UNICODE
_tcreat _creat _creat _wcreat

지정한 filename 파일이 없으면 지정된 사용 권한 설정을 사용하여 새 파일이 만들어지고 쓰기 위해 열립니다. 파일이 이미 있으며 해당 권한 설정으로 작성할 수 있는 경우 _creat는 파일의 길이를 0으로 잘라서 이전 내용을 제거하고, 작성할 수 있도록 파일을 엽니다. 권한 설정 pmode는 새로 생성된 파일에만 적용됩니다. 새 파일은 처음으로 닫힌 후 지정된 사용 권한 설정을 받습니다. 정수 식 pmode에는 SYS\Stat.h에 정의된 매니페스트 상수 _S_IWRITE_S_IREAD 중 하나 또는 둘 다가 포함되어 있습니다. 두 상수가 모두 지정되면 비트 또는 연산자( | )와 조인됩니다. pmode 매개 변수는 다음 값 중 하나로 설정됩니다.

정의
_S_IWRITE 쓰기를 허용합니다.
_S_IREAD 읽기를 허용합니다.
_S_IREAD | _S_IWRITE 읽기 및 쓰기를 허용합니다.

쓰기 권한이 지정되지 않은 경우 파일은 읽기 전용입니다. 모든 파일은 항상 읽을 수 있습니다. 쓰기 전용 권한을 부여하는 것은 불가능합니다. 그러면 _S_IWRITE_S_IREAD | _S_IWRITE 모드는 동일합니다. 를 사용하여 _creat 연 파일은 항상 호환 모드로 열립니다(참조 _sopen) _SH_DENYNO.

_creat 는 사용 권한을 설정하기 전에 현재 파일 사용 권한 마스크를 pmode 적용합니다(참조 _umask). _creat는 주로 이전 라이브러리와의 호환성을 위해 제공됩니다. oflag 매개 변수의 _O_CREAT_O_TRUNC를 사용한 _open 호출은 _creat와 동일하며, 새 코드에 적합합니다.

요구 사항

루틴에서 반환된 값 필수 헤더 선택적 헤더
_creat <io.h> <sys/types.h>, <sys/stat.h>, <errno.h>
_wcreat <io.h> 또는 <wchar.h> <sys/types.h>, <sys/stat.h>, <errno.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

// crt_creat.c
// compile with: /W3
// This program uses _creat to create
// the file (or truncate the existing file)
// named data and open it for writing.

#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   int fh;

   fh = _creat( "data", _S_IREAD | _S_IWRITE ); // C4996
   // Note: _creat is deprecated; use _sopen_s instead
   if( fh == -1 )
      perror( "Couldn't create data file" );
   else
   {
      printf( "Created data file.\n" );
      _close( fh );
   }
}
Created data file.

참고 항목

하위 수준 I/O
_chmod, _wchmod
_chsize
_close
_dup, _dup2
_open, _wopen
_sopen, _wsopen
_umask