スポンサーリンク

SETMODE(3) FreeBSD ライブラリ関数マニュアル SETMODE(3)

名称

getmode, setmode − モードビットを更新する

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <unistd.h>

mode_t

getmode(const void *set, mode_t mode);

void *

setmode(const char *mode_str);

解説

getmode() 関数は、 set が指す値によって変更された様にファイルパーミッショ ンビット mode のコピーを返します。モードビットだけが変更されるのに対し、 ファイルモードの他の部分を調査できます。

setmode() 関数は、 chmod(1) で述べた様に絶対値 (8 進数 ) またはシンボリッ ク値を引数として取り、 getmode() に与えられるモード値を指すポインタを返し ます。ファイル作成マスクには相対的なシンボリック値もあるので、 setmode() は umask(2) を呼び出すことがあります。これが生じた場合、ファイル作成マス クは setmode() が復帰する前に復元されます。呼び出しプログラムがファイル作 成マスクの値を setmode() を呼び出した後で変更する場合、将来のファイルモー ドを正しく更新するために getmode() を呼ぶなら、 setmode() をもう一度呼び 出す必要があります。

setmode() に渡されたモードが無効な場合、または戻り値に関するメモリを割り 当てできない場合、 setmode() は NULL を返します。

setmode() から返された値は malloc() から得られ、プログラムがその値に対す る処理を終えた時、通常は getmode() の呼び出しの後に、 free() でシステムに 返す必要があります。

エラー

setmode() 関数は、処理に失敗して errno をライブラリルーチン malloc(3) で 指定されたエラーのどれかに設定することがあります。

関連項目

chmod(1), stat(2), umask(2), malloc(3)

歴史

getmode() 関数と setmode() 関数は 4.4BSD で最初に登場しました。

FreeBSD 10.0 April 28, 1995 FreeBSD 10.0

スポンサーリンク