tail head cat sleep
QR code linking to this page

manページ  — STRMODE

名称

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

内容

ライブラリ

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

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

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() 関数は BSD 4.4 で初めて登場しました。

STRMODE (3) July 28, 1994

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

C is a language that combines all the elegance and power of assembly language with all the readability and maintainability of assembly language.