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


int _umask( int pmode );


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

戻り値Return Value

_umaskは、以前の値であるpmodeを返します。_umask returns the previous value of pmode. エラーの戻り値はありません。There is 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.


ルーチンによって返される値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
下位入出力Low-Level I/O
_chmod、_wchmod_chmod, _wchmod
_creat、_wcreat_creat, _wcreat
_mkdir、_wmkdir_mkdir, _wmkdir
_open、_wopen_open, _wopen