_umask

既定のファイル アクセス許可マスクを設定します。 この関数のより安全なバージョンについては、を参照してください _umask_s

構文

int _umask( int pmode );

パラメーター

pmode
既定のアクセス許可の設定。

戻り値

_umaskpmode の以前の値を返します。 エラーの戻り値はありません。

解説

この関数は _umask 、現在のプロセスのファイルアクセス許可マスクを、 で指定された pmodeモードに設定します。 ファイルのアクセス許可マスクは、_creat_open、または _sopen によって新しく作成されたファイルのアクセス許可の設定を変更します。 マスクのビットが 1 の場合は、ファイルの要求されたアクセス許可値に対応するビットは 0 (許可しない) に設定されます。 マスクのビットが 0 の場合は、対応するビットは変更されません。 新しいファイルのアクセス許可設定は、ファイルが初めて閉じられるまで設定されません。

整数式 pmode には、次で定義 SYS\STAT.Hされている次のマニフェスト定数のいずれかまたは両方が含まれています。

pmode 説明
_S_IWRITE 書き込みが許可されます。
_S_IREAD 読み取りが許可されます。
_S_IREAD | _S_IWRITE 読み取りと書き込みが許可されます。

両方の定数が指定されると、ビットごとの OR 演算子 ( | ) と結合されます。 引数が指定されている pmode 場合、 _S_IREAD読み取りは許可されません (ファイルは書き込み専用です)。 引数が指定されている pmode 場合、 _S_IWRITE書き込みは許可されません (ファイルは読み取り専用です)。 たとえば、マスクに書き込みビットが設定されている場合、新しいファイルはいずれも読み取り専用となります。 MS-DOS および Windows オペレーティング システムでは、すべてのファイルが読み取り可能です。書き込み専用のアクセス許可を付与することはできません。 したがって、_umask で読み取りビットを設定しても、ファイルのモードに影響はありません。

マニフェスト定数の組み合わせではない場合、または定数の代替セットが組み込まれている場合 pmode 、関数はそれらを無視します。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 これを変更するには、「CRT でのグローバル状態」を参照してください。

必要条件

機能 必須ヘッダー
_umask <io.h>, <sys/stat.h>, <sys/types.h>

互換性の詳細については、「 Compatibility」を参照してください。

ライブラリ

C ランタイム ライブラリのすべてのバージョン。

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

関連項目

ファイル処理
低レベル I/O
_chmod, _wchmod
_creat, _wcreat
_mkdir, _wmkdir
_open, _wopen