다음을 통해 공유


_umask_s

기본 파일 사용 권한 마스크를 설정합니다. CRT_umask 보안 기능에 설명된 대로 향상된 보안 기능이 있는 버전입니다.

구문

errno_t _umask_s(
   int mode,
   int* pOldMode
);

매개 변수

mode
기본 사용 권한 설정입니다.

pOldMode
사용 권한 설정의 이전 값입니다.

반환 값

유효한 모드 pOldMode 를 지정하지 않거나 포인터NULL가 있는 경우 mode 오류 코드를 반환합니다.

오류 조건

mode pOldMode 반환 값 pOldMode의 내용
any NULL EINVAL 수정 안 됨
잘못된 모드 any EINVAL 수정 안 됨

위의 조건 중 하나가 발생하면 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용한 경우 _umask_sEINVAL를 반환하고 errnoEINVAL로 설정합니다.

설명

함수는 _umask_s 현재 프로세스의 파일 사용 권한 마스크를 지정한 모드 mode로 설정합니다. 파일 사용 권한 마스크는 _creat, _open 또는 _sopen에서 생성한 새 파일의 사용 권한 설정을 수정합니다. 마스크의 비트가 1이면 파일의 요청된 사용 권한 값에서 해당하는 비트가 0(허용되지 않음)으로 설정됩니다. 마스크의 비트가 0이면 해당하는 비트는 변경되지 않고 그대로 유지됩니다. 새 파일에 대한 권한 설정은 파일이 처음으로 닫힙니다.

정수 식 mode 은 다음에 정의된 SYS\STAT.H다음 매니페스트 상수 중 하나 또는 둘 다를 포함합니다.

mode 설명
_S_IWRITE 쓰기를 허용합니다.
_S_IREAD 읽기를 허용합니다.
_S_IREAD | _S_IWRITE 읽기 및 쓰기를 허용합니다.

두 상수가 모두 지정되면 비트 OR 연산자( | )와 조인됩니다. 인수인 mode _S_IREAD경우 읽기가 허용되지 않습니다(파일은 쓰기 전용). 인수인 mode _S_IWRITE경우 쓰기가 허용되지 않습니다(파일은 읽기 전용). 예를 들어 마스크에 쓰기 비트가 설정되어 있으면 모든 새 파일은 읽기 전용이 됩니다. MS-DOS 및 Windows 운영 체제에서는 모든 파일을 읽을 수 있습니다. 쓰기 전용 권한을 부여할 수 없습니다. 따라서 _umask_s를 사용하여 읽기 비트를 설정해도 파일 모드에는 아무런 변화가 없습니다.

매니페스트 상수 중 하나의 조합이 아니거나 대체 상수 집합을 통합하는 경우 mode 함수는 이를 무시합니다.

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

요구 사항

함수 필수 헤더
_umask_s <io.h>, <sys/stat.h>, <sys/types.h>

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

예시

// crt_umask_s.c
/* This program uses _umask_s to set
* the file-permission mask so that all future
* files will be created as read-only files.
* It also displays the old mask.
*/

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

int main( void )
{
   int oldmask, err;

   /* Create read-only files: */
   err = _umask_s( _S_IWRITE, &oldmask );
   if (err)
   {
      printf("Error setting the umask.\n");
      exit(1);
   }
   printf( "Oldmask = 0x%.4x\n", oldmask );
}
Oldmask = 0x0000

참고 항목

파일 처리
하위 수준 I/O
_chmod, _wchmod
_creat, _wcreat
_mkdir, _wmkdir
_open, _wopen
_umask