_open, _wopen
파일을 엽니다.더 안전한 버전을 사용할 수 있으므로 이러한 함수는 사용 되지 않습니다. see _sopen_s, _wsopen_s.
int _open(
const char *filename,
int oflag [,
int pmode]
);
int _wopen(
const wchar_t *filename,
int oflag [,
int pmode]
);
매개 변수
filename
파일 이름.oflag
허용 되는 작업의 형식입니다.pmode
권한 모드입니다.
반환 값
이러한 각 함수는 열려 있는 파일에 대 한 파일 설명자를 반환합니다.반환 값은-1의 경우에 오류를 나타내는 errno 는 다음 값 중 하나로 설정 됩니다.
EACCES
읽기 전용 파일을 쓰기 위해 열려고 했습니다, 파일의 공유 모드 지정 된 작업을 수행할 수 없습니다 또는 지정 된 경로의 디렉터리입니다.EEXIST
_O_CREAT및 _O_EXCL 플래그를 지정 했지만 filename 이미 있습니다.EINVAL
잘못 된 oflag 또는 pmode 인수입니다.EMFILE
없음 자세한 파일 설명자 (열린 파일이 너무 많습니다).ENOENT
파일 또는 경로 찾을 수 없습니다.
이러한 기능 및 다른 반환 코드에 대 한 자세한 내용은 참조 하십시오. _doserrno, errno, _sys_errlist, 및 _sys_nerr.
설명
_open 함수는 지정 된 파일 엽니다 filename 읽기 또는 쓰기에 지정 된 대로 해당 파일을 준비 하 고 oflag._wopen와이드 문자 버전입니다 _open. filename 인수를 _wopen 와이드 문자 문자열입니다._wopen및 _open 그렇지을 동일 하 게 작동 합니다.
일반 텍스트 루틴 매핑
Tchar.h 루틴 |
_UNICODE 및 _mbcs가 정의 되지 않았습니다. |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_topen |
_open |
_open |
_wopen |
oflag다음 매니페스트 상수 또는 상수 조합 fcntl.h에 정의 된 하나 이상의 정수 식이 형성 됩니다.
_O_APPEND
매 쓰기 작업 하기 전에 파일 끝에 파일 포인터를 이동합니다._O_BINARY
이진 (변환 되지 않은) 모드에서 파일을 엽니다.(참조 하십시오 통해 에 대 한 설명은 이진 모드에 대 한 합니다.)_O_CREAT
만들어 쓰기에 대 한 새 파일을 엽니다.파일이 지정 된 경우 적용 되지 않습니다 filename 있습니다.pmode인수는 필요한 경우 _O_CREAT 지정 됩니다._O_CREAT| _O_SHORT_LIVED
임시 파일을 만들고 가능한 경우 디스크를 플러시하지 마십시오.pmode인수는 필요한 경우 _O_CREAT 지정 됩니다._O_CREAT| _O_TEMPORARY
임시 파일을 만듭니다. 마지막 파일 설명자를 닫을 때 파일이 삭제 됩니다.pmode인수는 필요한 경우 _O_CREAT 지정 됩니다._O_CREAT| _O_EXCL
파일이 지정 된 경우 오류 값을 반환 합니다. filename 있습니다.함께 사용 될 때만 적용 됩니다. _O_CREAT._O_NOINHERIT
공유 파일 설명자를 만들 수 없습니다._O_RANDOM
캐싱입니다, 최적화, 임의 액세스 디스크에서 제하지 없는 지정 하지만._O_RDONLY
읽기 전용 파일을 엽니다. 함께 지정할 수 없습니다. _O_RDWR 또는 _O_WRONLY._O_RDWR
읽고 쓸 파일을 엽니다. 이 플래그를 지정할 수 없습니다 _O_RDONLY 또는 _O_WRONLY._O_SEQUENTIAL
캐싱입니다, 최적화, 순차적 액세스 디스크에서 제하지 없는 지정 하지만._O_TEXT
(번역) 텍스트 모드에서 파일을 엽니다.(자세한 내용은 텍스트 및 이진 모드 파일 I/O 및 통해입니다.)_O_TRUNC
파일을 열고 길이 0으로 잘립니다. 파일에 쓰기 권한이 있어야 합니다.이 플래그를 지정할 수 없습니다 _O_RDONLY._O_TRUNC사용 _O_CREAT 기존 파일을 열거나 새 파일을 만듭니다.[!참고]
_O_TRUNC 플래그는 지정 된 파일의 내용을 삭제 합니다.
_O_WRONLY
만 쓰기 위한 파일을 엽니다. 함께 지정할 수 없습니다. _O_RDONLY 또는 _O_RDWR._O_U16TEXT
유니코드 utf-16 모드에서 파일을 엽니다._O_U8TEXT
유니코드 u t F-8 모드로 파일을 엽니다._O_WTEXT
유니코드 모드로 파일을 엽니다.
파일 액세스 모드를 지정 하려면 지정 해야 _O_RDONLY, _O_RDWR, 또는 _O_WRONLY.액세스 모드에 대 한 기본값이입니다.
경우 _O_WTEXT 파일을 읽기용으로 열 수 있습니다 _open 파일 및 바이트 순서 표시 (BOM)에 대 한 검사 부분을 읽습니다.BOM 이면 파일이 u t F-8 이나 utf-16le BOM에 따라 처리 됩니다.BOM이 있는 경우 파일이 ANSI로 처리 됩니다.파일이 열릴 때 사용 하 여 작성 하는 데 _O_WTEXT, u t F-16을 사용 합니다.경우 _O_UTF8 입니다 사용 하면 파일이 항상 u t F-8로 열릴 경우 _O_UTF16 입니다 사용 하면 파일이 항상 u t F-16으로 모든 이전 설정 또는 바이트 순서 표시에 관계 없이 열립니다.
경우 _open 을 호출 _O_WRONLY|_O_APPEND (추가 모드) 및 _O_WTEXT, _O_U16TEXT, 또는 _O_U8TEXT, 합니다 먼저 실행 파일 읽기 및 쓰기에 대 한 열에서 BOM을 읽고 쓰기 전용으로 다시 합니다.읽기 / 쓰기 실패에 대 한 파일을 열 경우만 작성을 위한 파일을 열고 유니코드 모드 설정에 대해 기본값을 사용 합니다.
둘 이상의 매니페스트 상수 폼에는 있는 oflag 인수를 상수 결합 되는 비트 OR 연산자 ( |).이진 및 텍스트 모드에 대 한 설명은 참조 하십시오. 텍스트 및 이진 모드 파일 I/O.
pmode 인수는 필수입니다 경우에만 _O_CREAT 지정 됩니다.해당 파일이 이미 있는 경우 pmode 는 무시 됩니다.그렇지 않으면 pmode 처음으로 새 파일을 닫을 때 설정 되는 파일 사용 권한 설정을 지정 합니다._open현재 파일 권한 마스크에 적용 됩니다 pmode 의 사용 권한을 설정 하기 전에 (자세한 내용은 _umask).pmodesys\stat.h에 정의 된 다음 매니페스트 상수 중 하나 또는 모두가 포함 된 정수 식입니다.
_S_IREAD
읽기에만 허용 됩니다._S_IWRITE
쓰기 허용 (효과적으로 읽고 쓸 수 있습니다)._S_IREAD | _S_IWRITE
읽기 및 쓰기를 허용 합니다.
두 상수가 지정 된 경우는 가입 된 비트 OR 연산자 (와 |).쓰기 전용 권한을 사용할 수 없도록 Windows NT 모든 파일을 읽을 수 있습니다. 따라서 모드 _S_IWRITE 및**_S_IREAD** | _S_IWRITE동일합니다.
위 이외의 값을 지정 된 경우 pmode (를 잘못 지정한 경우에 pmode 다른 운영 체제에서) 나는 허용 된 이외의 다른 값 oflag 값 지정 하면 함수는 어설션을 디버그 모드에서 생성 한의 설명에 따라 잘못 된 매개 변수 처리기를 호출 합니다. 매개 변수 유효성 검사.실행을 계속 하려면 함수는-1 반환 하 고 설정 수 있으면 errno 에 EINVAL.
요구 사항
루틴 |
필수 헤더 |
선택적 헤더 |
---|---|---|
_open |
<io.h> |
<fcntl.h>, <sys/types.h>, <sys/stat.h> |
_wopen |
<io.h> 또는 <wchar.h> |
<fcntl.h>, <sys/types.h>, <sys/stat.h> |
더 많은 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
라이브러리
모든 버전의 C 런타임 라이브러리.
예제
// crt_open.c
// compile with: /W3
/* This program uses _open to open a file
* named CRT_OPEN.C for input and a file named CRT_OPEN.OUT
* for output. The files are then closed.
*/
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
int main( void )
{
int fh1, fh2;
fh1 = _open( "CRT_OPEN.C", _O_RDONLY ); // C4996
// Note: _open is deprecated; consider using _sopen_s instead
if( fh1 == -1 )
perror( "Open failed on input file" );
else
{
printf( "Open succeeded on input file\n" );
_close( fh1 );
}
fh2 = _open( "CRT_OPEN.OUT", _O_WRONLY | _O_CREAT, _S_IREAD |
_S_IWRITE ); // C4996
if( fh2 == -1 )
perror( "Open failed on output file" );
else
{
printf( "Open succeeded on output file\n" );
_close( fh2 );
}
}
Output
Open succeeded on input file
Open succeeded on output file
해당 .NET Framework 항목
System::IO::FileStream::FileStream