다음을 통해 공유


_sopen_s, _wsopen_s

공유를 위해 파일을 엽니다.이러한 버전의 있습니다 _sopen 및 _wsopen 와 보안 기능 향상에 설명 된 대로 CRT의 보안 기능.

errno_t _sopen_s(
   int* pfh,
   const char *filename,
   int oflag,
   int shflag,
   int pmode
);
errno_t _wsopen_s(
   int* pfh,
   const wchar_t *filename,
   int oflag,
   int shflag,
   int pmode,
);

매개 변수

  • [out] pfh
    파일 핸들 또는 오류가의 경우-1입니다.

  • [in] filename
    파일 이름.

  • [in] oflag
    허용 되는 작업의 형식입니다.

  • [in] shflag
    허용 공유 형식입니다.

  • [in] pmode
    사용 권한 설정 합니다.

반환 값

0이 아닌 반환 값은 오류를 나타내는 errno 는 다음 값 중 하나로 설정 됩니다.

  • EACCES
    지정 된 경로의 디렉터리를 또는 읽기 전용 파일입니다 하지만 개방에 대 한 쓰기 작업을 시도 했습니다.

  • EEXIST
    _O_CREAT 및 _O_EXCL 플래그 지정, 하지만 filename 이미 존재 합니다.

  • EINVAL
    Invalid oflag, shflag, orpmode argument, or pfh or filename was a null pointer.

  • EMFILE
    없음 자세한 파일 설명자 사용할 수 있습니다.

  • ENOENT
    파일 또는 경로 찾을 수 없습니다.

잘못 된 인수가 함수에 전달 되 면 잘못 된 매개 변수 처리기를의 설명에 따라 호출 됩니다 매개 변수 유효성 검사.실행 계속 수 있으면 errno 으로 설정 EINVAL 및 EINVAL 이 반환 됩니다.

이러한 기능 및 다른 반환 코드에 대 한 자세한 내용은 참조 하십시오. _doserrno, errno, _sys_errlist, 및 _sys_nerr.

오류가의 경우-1을 통해 반환 됩니다 pfh (하지 않는 한 pfh 은 null 포인터입니다).

설명

_sopen_s 함수에서 지정한 파일을 엽니다 filename 및가 정의 된 파일 공유 읽기 또는 쓰기에 대 한 준비 oflag 및 shflag._wsopen_s와이드 문자 버전입니다 _sopen_s. filename 인수를 _wsopen_s 와이드 문자 문자열입니다._wsopen_s및 _sopen_s 그렇지을 동일 하 게 작동 합니다.

일반 텍스트 루틴 매핑

Tchar.h 루틴

_UNICODE 및 _mbcs가 정의 되지 않았습니다.

_Mbcs가 정의

_Unicode가 정의

_tsopen_s

_sopen_s

_sopen_s

_wsopen_s

정수 식 oflag Fcntl.h 파일에 정의 된 매니페스트 상수를 하나 이상 조합 하 여 형성 됩니다.두 개 이상의 상수 인수 형성 시기 oflag가 결합 되는 비트 OR 연산자 ( | ).

  • _O_APPEND
    매 쓰기 작업 하기 전에 파일의 끝에 대 한 파일 포인터를 다시 설정합니다.

  • _O_BINARY
    이진 (변환 되지 않은) 모드에서 파일을 엽니다.(참조 하십시오 통해 에 대 한 설명은 이진 모드에 대 한 합니다.)

  • _O_CREAT
    만들어 쓰기에 대 한 새 파일을 엽니다.파일이 지정 된 경우 적용 되지 않습니다 filename 있습니다.

  • _O_CREAT| _O_SHORT_LIVED
    임시 파일을 만들고 가능한 경우 디스크를 플러시하지 마십시오.

  • _O_CREAT| _O_TEMPORARY
    임시 파일을 만듭니다. 마지막 파일 설명자를 닫을 때 파일이 삭제 됩니다.

  • _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.액세스 모드에 대 한 기본값이입니다.

경우 _sopen_s 을 호출 _O_WRONLY|_O_APPEND (추가 모드) 및 _O_WTEXT, _O_U16TEXT, 또는 _O_U8TEXT, 합니다 먼저 실행 파일 읽기 및 쓰기에 대 한 열에서 BOM을 읽고 쓰기 전용으로 다시 합니다.읽기 / 쓰기 실패에 대 한 파일을 열 경우만 작성을 위한 파일을 열고 유니코드 모드 설정에 대해 기본값을 사용 합니다.

인수가 shflag share.h에 정의 된 매니페스트 상수 다음 중 하나로 구성 되는 상수 식입니다.

  • _SH_DENYRW
    읽기 및 파일에 쓰기 액세스를 거부합니다.

  • _SH_DENYWR
    파일에 쓰기 액세스를 거부 합니다.

  • _SH_DENYRD
    파일에 읽기 액세스를 거부합니다.

  • _SH_DENYNO
    읽기 및 쓰기 액세스를 허용.

pmode 인수는 달리 필요가 항상 _sopen.지정할 경우 _O_CREAT파일이 존재 하지 않는 경우, pmode 처음으로 새 파일을 닫을 때 설정 된 파일의 권한 설정을 지정 합니다.그렇지 않으면 pmode 는 무시 됩니다.pmode매니페스트 상수 중 하나 또는 모두를 포함 하는 정수 식입니다 _S_IWRITE 및 _S_IREAD, sys\stat.h에서 정의 됩니다.두 상수가 지정 된 경우 비트 OR 연산자로 결합.의미를 pmode 는 다음과 같습니다.

  • _S_IWRITE
    쓰기를 허용 합니다.

  • _S_IREAD
    읽기를 허용 합니다.

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

쓰기 권한을 지정 하지 않으면 파일이 읽기 전용입니다.Windows 운영 체제에서 모든 파일을 읽을 수 있습니다. 쓰기 전용 권한을 부여할 수 없습니다.따라서 모드 _S_IWRITE 및 _S_IREAD | _S_IWRITE 은 동일 합니다.

_sopen_s현재 파일 권한 마스크에 적용 됩니다. pmode 의 사용 권한을 설정 하기 전에 (볼 _umask).

요구 사항

루틴

필수 헤더

선택적 헤더

_sopen_s

<io.h>

<fcntl.h>, <sys/types.h>, <sys/stat.h>, <share.h>

_wsopen_s

<io.h> 또는 <wchar.h>

<fcntl.h>, <sys/types.h>, <sys/stat.h>, <share.h>

더 많은 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

예제를 보려면 _locking.

참고 항목

참조

하위 수준 I/O

_close

_creat, _wcreat

통해, _wfopen

_fsopen, _wfsopen

_open, _wopen