既定のファイル アクセス許可マスクを設定します。Sets the default file-permission mask. この関数のセキュリティが強化されたバージョンについては、「 _umask_s 」を参照してください。See _umask_s for a more secure version of this function."


int _umask( int pmode );


既定のアクセス許可の設定。Default permission setting.

戻り値Return Value

_umask は、の前の値である pmodeを返します。_umask returns the previous value of pmode. エラーの戻り値はありません。There's no error return.


_Umask関数は、現在のプロセスのファイルアクセス許可マスクを、 pmodeによって指定されたモードに設定します。The _umask function sets the file-permission mask of the current process to the mode specified by pmode. ファイルのアクセス許可マスクは、 _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 には、sysstatで定義されている次のマニフェスト定数のいずれかまたは両方が含まれています。始めThe integer expression pmode contains one or both of the following manifest constants, defined in SYS\STAT.H:

_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 ( | ). Pmode引数が _S_IREADの場合、読み取りは許可されません (ファイルは書き込み専用です)。If the pmode argument is _S_IREAD, reading is not allowed (the file is write-only). Pmode引数が _S_IWRITEの場合、書き込みは許可されません (ファイルは読み取り専用です)。If the pmode 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 に設定しても、ファイルのモードには影響しません。Therefore, setting the read bit with _umask 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.

既定では、この関数のグローバル状態はアプリケーションにスコープが設定されています。By default, this function's global state is scoped to the application. これを変更するには、「 CRT でのグローバル状態」を参照してください。To change this, see Global state in the CRT.


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

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


C ランタイム ライブラリのすべてのバージョン。All versions of the C run-time libraries.


// crt_umask.c
// compile with: /W3
// This program uses _umask 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;

   /* Create read-only files: */
   oldmask = _umask( _S_IWRITE ); // C4996
   // Note: _umask is deprecated; consider using _umask_s instead
   printf( "Oldmask = 0x%.4x\n", oldmask );
Oldmask = 0x0000

関連項目See also

ファイルの処理File Handling
低レベル i/oLow-Level I/O
_chmod、_wchmod_chmod, _wchmod
_creat、_wcreat_creat, _wcreat
_mkdir、_wmkdir_mkdir, _wmkdir
_open、_wopen_open, _wopen