_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
계속해서 실행하도록 허용한 경우 이러한 함수는 errno
를 EINVAL
로 설정하고 -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