EN JA
STRMODE(3)
STRMODE(3) FreeBSD Library Functions Manual STRMODE(3)

名称

strmodeinode ステータス情報をシンボル文字列に変換する

ライブラリ

Standard C Library (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 文字は、 ``other'' (他者) またはデフォルトのユーザセット用です。

パーミッションチェックは、できる限り明確に行われます。最初のパーミッションセットでファイルの所有者に対して読み込み許可が与えられなかった場合は、ファイルの所有者は、そのファイルを読み込むことができないでしょう。所有者がファイルのグループに入っており、そのグループパーミッションによって読み込み許可が与えられているか読み込みを許可する ``other'' (他者) のパーミッションが与えられている場合でも当てはまります。

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
ファイルは、実行可能であるか、またはディレクトリが検索可能。
-
上のいずれにも該当しない。

最後の文字は、常に空白になります。

歴史

strmode() 関数は、 4.4BSD ではじめて登場しました。
July 28, 1994 FreeBSD