_umask_s_umask_s

既定のファイル アクセス許可マスクを設定します。Sets the default file-permission mask. Security Features in the CRT」 (CRT のセキュリティ機能) の説明にあるとおり、セキュリティが強化されたバージョンの _umask です。A version of _umask with security enhancements as described in Security Features in the CRT.

構文Syntax

errno_t _umask_s(
   int mode,
   int * pOldMode
);

パラメーターParameters

モードmode
既定のアクセス許可の設定。Default permission setting.

pOldModepOldMode
アクセス許可設定の以前の値。The previous value of the permission setting.

戻り値Return Value

場合、エラー コードを返しますモードで有効なモードが指定されていない、またはpOldModeポインターがNULLします。Returns an error code if mode does not specify a valid mode or the pOldMode pointer is NULL.

エラー条件Error Conditions

モードmode pOldModepOldMode 戻り値Return value 内容pOldModeContents of pOldMode
任意any NULLNULL EINVALEINVAL 変更されないnot modified
無効なモードinvalid mode 任意any EINVALEINVAL 変更されないnot modified

上記のいずれかの条件が発生すると、「パラメータの検証」に説明されているように、無効なパラメーター ハンドラ―が呼び出されます。If one of the above conditions occurs, the invalid parameter handler is invoked, as described in Parameter Validation. 続けるには、実行が許可された場合 _umask_s返しますEINVAL設定とerrnoEINVALします。If execution is allowed to continue, _umask_s returns EINVAL and sets errno to EINVAL.

RemarksRemarks

_Umask_s関数では、現在のプロセスのファイルのアクセス許可マスクを設定で指定されたモードにモードします。The _umask_s function sets the file-permission mask of the current process to the mode specified by mode. ファイルのアクセス許可マスクは、新しく作成したファイルのアクセス許可の設定を変更します。 _creat_open、または _sopenします。The file-permission mask modifies the permission setting of new files created by _creat, _open, or _sopen. マスクのビットが 1 の場合は、ファイルの要求されたアクセス許可値に対応するビットは 0 (許可しない) に設定されます。If a bit in the mask is 1, the corresponding bit in the file's requested permission value is set to 0 (disallowed). マスクのビットが 0 の場合は、対応するビットは変更されません。If a bit in the mask is 0, the corresponding bit is left unchanged. 新しいファイルのアクセス許可の設定は、そのファイルが最初に閉じられるまで、設定されません。The permission setting for a new file is not set until the file is closed for the first time.

整数式pmode SYS\STAT で定義されている、次のマニフェスト定数の一方または両方が含まれています。H:The integer expression pmode contains one or both of the following manifest constants, defined in SYS\STAT.H:

pmodepmode
_S_IWRITE_S_IWRITE 書き込みが許可されます。Writing permitted.
_S_IREAD_S_IREAD 読み取りが許可されます。Reading permitted.
_S_IREAD | _S_IWRITE_S_IREAD | _S_IWRITE 読み取りと書き込みが許可されます。Reading and writing permitted.

ビットごとの OR 演算子で参加している両方の定数を指定する場合 ( | )。When both constants are given, they are joined with the bitwise-OR operator ( | ). 場合、モード引数が _S_IREAD読み取りが許可されていません (ファイルは書き込み専用)。If the mode argument is _S_IREAD, reading is not allowed (the file is write-only). 場合、モード引数が _S_IWRITE書き込みが許可されていません (ファイルは読み取り専用)。If the mode argument is _S_IWRITE, writing is not allowed (the file is read-only). たとえば、マスクに書き込みビットが設定されている場合、新しいファイルはいずれも読み取り専用となります。For example, if the write bit is set in the mask, any new files will be read-only. MS-DOS および Windows オペレーティング システムでは、すべてのファイルは読み取り可能です。書き込み専用のアクセス許可を与えることはできません。Note that with MS-DOS and the Windows operating systems, all files are readable; it is not possible to give write-only permission. そのため、読み取りのビットを設定 _umask_sファイルのモードに影響を与えません。Therefore, setting the read bit with _umask_s has no effect on the file's modes.

場合pmodeマニフェスト定数のいずれかの組み合わせではないまたは代替のセットを組み込んで、定数の関数は単にそれらを無視します。If pmode is not a combination of one of the manifest constants or incorporates an alternate set of constants, the function will simply ignore those.

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_umask_s_umask_s <io.h> と <sys/stat.h> と <sys/types.h><io.h> and <sys/stat.h> and <sys/types.h>

互換性の詳細については、「 互換性」を参照してください。For additional compatibility information, see Compatibility.

Example

// 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

関連項目See also

ファイル処理File Handling
下位入出力Low-Level I/O
_chmod、_wchmod_chmod, _wchmod
_creat、_wcreat_creat, _wcreat
_mkdir、_wmkdir_mkdir, _wmkdir
_open、_wopen_open, _wopen
_umask_umask