_umask_s
既定のファイルのアクセス許可マスクを設定します。 CRT のセキュリティ機能"に説明されているように、セキュリティが強化された _umask のバージョン。
errno_t _umask_s(
int mode,
int * pOldMode
);
パラメーター
[入力] mode
既定のアクセス許可の設定。[出力] oldMode
アクセス許可の設定の前の値。
戻り値
Mode が有効なモードを指定していない場合、または pOldMode のポインターが NULL場合はエラー コードを返します。
エラー条件
mode |
pOldMode |
戻り値 |
目次 oldMode |
---|---|---|---|
任意 |
NULL |
EINVAL |
変更されない |
無効なモード |
任意 |
EINVAL |
変更されない |
上の条件の 1 つが発生する場合、無効なパラメーター ハンドラーが パラメーターの検証"に説明されているように、呼び出されます。 実行の継続が許可された場合、_umask_s は EINVAL を返し、errno を EINVAL に設定します。
解説
モードへの現在のプロセスのファイル アクセス許可が modeマスクで指定した _umask_s関数のセット*。*ファイルのアクセス許可マスクは _creat、_open、または _sopenによって作成された新しいファイルのアクセス許可設定を変更します。 マスクに 1 は 0 に、ファイルが要求するアクセス許可値の対応するビットが設定されています (拒否) です。 マスクには、対応する 0 ビット、不変少なくなります。 新しいファイルのアクセス許可は、ファイルが初めて閉じるまで設定されません。
整数式 pmode は SYS\STAT.H で次の記号定数 1 のいずれかまたは両方を定義して含まれています:
_S_IWRITE
許可される書き込み。_S_IREAD
許可される読み取り。_S_IREAD | _S_IWRITE
許可されるの読み取りと書き込み。
定数は、両方とも提供されると、ビットごとの OR 演算子で結合されます。| ). mode の引数が _S_IREADは、読み取ることはできません (ファイルは書き込み専用です)。 mode の引数が _S_IWRITEの場合、書き込むことはできません (ファイルは読み取り専用です。 たとえば、書き込みビットがマスクに設定されている場合、新しいファイルが読み取り専用です。 MS-DOS および Windows オペレーティング システムと、すべてのファイルを読み取ることができることに注意してください; 書き込み専用アクセス許可を与えることはできません。 したがって、_umask_sの読み取り専用ビットを設定すると、ファイルのモードには影響しません。
pmode がマニフェスト定数の 1 種類の組み合わせで、別の一連の定数を組み込む、それらは無視されます。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_umask_s |
<io.h と> sys </stat.h と sys> /types.h <> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// crt_umask_s.c
/* This program uses _umask_s 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, err;
/* Create read-only files: */
err = _umask_s( _S_IWRITE, &oldmask );
if (err)
{
printf("Error setting the umask.\n");
exit(1);
}
printf( "Oldmask = 0x%.4x\n", oldmask );
}
同等の .NET Framework 関数
System::IO::File::SetAttributes