_umask

既定のファイル アクセス許可マスクを設定します。 この関数のセキュリティが強化されたバージョンについては、「_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

参照

参照

ファイル処理

下位入出力

_chmod、_wchmod

_creat、_wcreat

_mkdir、_wmkdir

_open、_wopen