スポンサーリンク

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

名称

strmode − inode ステータス情報をシンボル文字列に変換

ライブラリ

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

書式

#include <string.h>

void

strmode(mode_t mode, char *bp);

解説

strmode() 関数は、ファイル mode (inode に結合されるタイプとパーミッション の情報については、 stat(2) を参照) をシンボル文字列に変換し、それを bp で 参照される場所に保存します。保存されるこの文字列は、長さが 11 文字で最後 にヌル文字が付きます。

最初の文字は inode タイプで、次のいずれかになります :

通常ファイル
b
ブロック型特殊ファイル
c
文字型特殊ファイル
d
ディレクトリ
l
シンボリックリンク
p
fifo
s
ソケット
w
whiteout
?
未知の inode タイプ

次に続く 9 つの文字は、3 文字毎に 3 つのパーミッションセットをコード化し ます。最初の 3 つの文字はファイル所有者のためのパーミッションで、 2 番目 の 3 文字はファイルが所属するグループのためのもの、そして 3 番目の 3 文字 は ‘‘他者’’ またはデフォルトのユーザセット用です。

パーミッションチェックは、できる限り明確に限定して行われます。最初のパー ミッションセットでファイルの所有者に対して読み取り許可が拒否された場合 は、ファイルの所有者はそのファイルを読み取ることができません。このこと は、その所有者がファイルのグループに入っており、そのグループパーミッショ ンによって読み取り許可が与えられている場合、または読み取りを許可する ‘‘他 者’’ のパーミッションが与えられている場合でも当てはまります。

3 文字セットの最初の文字が ‘‘r’’ である場合は、そのファイルはそのユーザ セットに対して読み取り可能です。文字がダッシュ ‘‘−’’ 場合は、読み取りでき ません。

3 文字セットの 2 番目の文字が ‘‘w’’ である場合は、そのファイルはそのユー ザセットに対して書き込み可能です。文字がダッシュ ‘‘−’’ である場合は、書き 込みできません。

3 番目の文字は、次の該当する文字です :

S
文字が所有者パーミッションの一部であり、ファイルが実行可能ではない か、またはディレクトリが所有者によって検索可能ではなく、 set-user-id ビットが設定されている場合。

S
文字がグループパーミッションの一部であり、ファイルが実行可能ではな いか、またはディレクトリがグループによって検索可能ではなく、 set-group-id ビットが設定されている場合。

T
文字が他者のパーミッションの一部であり、ファイルが実行可能ではない か、またはディレクトリが他者のものによって検索可能ではなく、 ‘‘sticky’’ (S_ISVTX) ビットが設定されている場合。

s
文字が所有者パーミッションの一部であり、ファイルが実行可能である か、またはディレクトリが所有者によって検索可能であり、 set-user-id ビットが設定されている場合。

s
文字がグループパーミッションの一部であり、ファイルが実行可能である か、またはディレクトリがグループによって検索可能であり、 set-group-id ビットが設定されている場合。

t
文字が他者のパーミッションの一部であり、ファイルが実行可能である か、またはディレクトリが他者のものによって検索可能であり、 ‘‘sticky’’ (S_ISVTX) ビットが設定されている場合。

x
ファイルが実行可能であるか、またはディレクトリが検索可能。


上のいずれにも該当しない。

最後の文字は inode に結合された別のアクセス制御方法が何かある場合は、プラ ス記号 ‘‘+’’ です。それ以外の場合は、文字はスペースになります。

戻り値

strmode() 関数は、常に 0 を返します。

関連項目

chmod(1), find(1), stat(2), getmode(3), setmode(3)

歴史

strmode() 関数は 4.4BSD で初めて登場しました。

FreeBSD 10.0 July 28, 1994 FreeBSD 10.0

スポンサーリンク