_umask
更新 : 2007 年 11 月
既定のファイル アクセス許可マスクを設定します。この関数のセキュリティが強化されたバージョンについては、「_umask_s」を参照してください。
int _umask(
int pmode
);
パラメータ
- pmode
アクセス許可の既定の設定。
戻り値
_umask は pmode の以前の値を返します。エラーの戻り値はありません。
解説
_umask 関数は、現在のプロセスのファイルのアクセス許可マスクを、pmode で指定されているモードに設定します。ファイルのアクセス許可マスクによって、_creat、_open、または _sopen で作成された新規ファイルのアクセス許可の設定が変更されます。マスクのビットが 1 の場合、ファイルに対して要求されるアクセス許可値の中の対応ビットが 0 (不許可) に設定されます。マスクのビットが 0 の場合、対応するビットは変更されません。新規ファイルのアクセス許可は、そのファイルを初めて閉じたときに設定されます。
整数式 pmode には、SYS\STAT.H で定義されている次の記号定数のいずれか、または両方を指定します。
_S_IWRITE
書き込み許可。_S_IREAD
読み取り許可。_S_IREAD | _S_IWRITE
ファイルの読み取りおよび書き込みを許可します。
両方の定数を指定する場合は、ビットごとの OR 演算子 ( | ) で結合します。引数 pmode が _S_IREAD の場合は、読み取り禁止 (ファイルは書き込み専用) になります。引数 pmode が _S_IWRITE の場合は、書き込み禁止 (ファイルは読み取り専用) になります。たとえば、マスクに書き込みビットが設定されている場合は、すべての新規ファイルが読み取り専用になります。MS-DOS と Windows オペレーティング システムでは、すべてのファイルが読み取り可能です。書き込み専用のアクセス許可を与えることはできません。したがって、_umask で読み取りビットを設定しても、ファイルのモードには影響しません。
pmode がマニフェスト定数のいずれかとの組み合わせになっていない場合や、代わりの定数セットを組み込んでいる場合は、関数によりこれらが無視されるだけです。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_umask |
<io.h>、<sys/stat.h>、<sys/types.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
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
.NET Framework の相当するアイテム
System::IO::File::SetAttributes