_umask
既定のファイル アクセス許可マスクを設定します。 この関数のより安全なバージョンについては、 _umask_s
を参照してください。
構文
int _umask( int pmode );
パラメーター
pmode
既定のアクセス許可の設定。
戻り値
_umask
は pmode
の以前の値を返します。 エラーの戻り値はありません。
解説
_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
マニフェスト定数の 1 つの組み合わせではない場合、または定数の代替セットが組み込まれている場合、関数はそれらを無視します。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 これを変更するには、「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