umask
io.h:インデックス への移動
ヘッダーファイル
io.h, sys\stat.h
カテゴリ
入出力ルーチン
プロトタイプ
unsigned umask(unsigned mode);
説明
ファイルの読み出し/書き込み許可マスクを設定します。
umask 関数は,open と creat によって使用されるアクセス許可マスクを設定します。その後の open または create で作成されるファイルのアクセス許可では,mode で設定されたビットがクリアされます。
mode には,次のいずれかの値を指定できます。これらの値は,sys\stat.h で定義されています。
S_IWRITE |
書き込み許可 |
S_IREAD |
読み取り許可 |
S_IREAD|S_IWRITE |
読み書き許可 |
戻り値
直前のマスクの値。エラーの戻り値はありません。
例
#include <io.h>
#include <stdio.h>
#include <sys\stat.h>
#define FILENAME "TEST.$$$"
int main(void)
{
unsigned oldmask;
FILE *f;
struct stat statbuf;
/* 後続のファイルを読み出し専用で作成します */
oldmask = umask(S_IWRITE);
printf("Old mask = 0x%x\n",oldmask);
/* 長さ 0 のファイルを作成します */
if ((f = fopen(FILENAME,"w+")) == NULL)
{
perror("Unable to create output file");
return (1);
}
fclose(f);
/* ファイルが読み出し専用であることを検証します */
if (stat(FILENAME,&statbuf) != 0)
{
perror("Unable to get information about output file");
return (1);
}
if (statbuf.st_mode & S_IWRITE)
printf("Error! %s is writable!\n",FILENAME);
else
printf("Success! %s is not writable.\n",FILENAME);
return (0);
}
移植性
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |
+ |