_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_s
는 EINVAL
를 반환하고 errno
를 EINVAL
로 설정합니다.
설명
함수는 _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