다음을 통해 공유


_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 반환 하 고 설정 수 있으면 errnoEINVAL.

요구 사항

루틴

필수 헤더

선택적 헤더

_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 항목

참고 항목

참조

하위 수준 I/O

_chmod, _wchmod

_close

_creat, _wcreat

_dup, _dup2

통해, _wfopen

_sopen, _wsopen