名前


umask - ファイルモード作成マスクを設定する

書式


#include <sys/types.h> #include <sys/stat.h>

mode_t umask(mode_t mask);

説明


umask() は、呼び出し元プロセスのファイルモード作成マスク (umask) を mask & 0777 に設定する。

umask は、 open(2), mkdir(2) やファイル作成を行うその他のシステムコールで、 新しく作成されるファイルやディレクトリの許可 (permission) を 修正するために使用される。 具体的には umask に設定されている許可が open(2)mkdir(2)mode 引き数から取り消される。

mask に指定するのに使用すべき定数については stat(2) で説明されている。

プロセスの umask のよくあるデフォルト値は S_IWGRP | S_IWOTH (8進で 022) である。 新しいファイルを作成する際に open(2)mode 引き数に

S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH を指定するというよくあるケースでは、作成されたファイルは

S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH

という許可を持つことになる (なぜなら 0666 & ~022 = 0644、つまり rw-r--r--)。

返り値


このシステムコールは必ず成功し、以前の umask 値を返す。

準拠


SVr4, 4.3BSD, POSIX.1-2001.

注意


fork(2) で作成された子プロセスは、親プロセスの umask を継承する。 execve(2) によって umask は変更されない。

関連項目


chmod(2), mkdir(2), open(2), stat(2)

openSUSE Logo

コンテンツ