名前 | 形式 | 機能説明 | 戻り値 | エラー | 属性 | 関連項目
cc [flags...] file... -ltsol [library...]
#include <tsol/label.h> int getlabel(const char *path, m_label_t *label_p);
int fgetlabel(int fd, m_label_t *label_p);
getlabel() は、path で指定されたファイルの機密ラベルを取得します。path の最終構成要素への任意の読み取り、書き込み、または実行アクセス権は必要ありませんが、path のパス接頭辞内のすべてのディレクトリが検索可能である必要があります。
fgetlabel() は、引数の記述子から参照される、開いたファイルのラベルを取得します。取得は、open(2) の呼び出しなどを使って行われます。
label_p は、隠されたラベル構造へのポインタです。呼び出し側は、 m_label_alloc(3TSOL) を使用して、label_p 用の領域を割り当てる必要があります。
次の条件のどれかが該当する場合、getlabel() の処理は失敗します。
path のパス接頭辞の構成要素に対する検索権限が拒否されています。この制約を除くには、呼び出し元プロセスで PRIV_FILE_DAC_SEARCH 特権を表明します。
label_p または path が無効なアドレスを指しています。
ファイルシステムに対する読み取りまたは書き込みで I/O エラーが発生しました。
path を変換するときに検出されたシンボリックリンクの数が多すぎます。
パス引数の長さが PATH_MAX を超えています。
_POSIX_NO_TRUNC が有効な状態で、パス名の構成要素の長さが NAME_MAX を超えています (pathconf(2) を参照)。
path で参照されているファイルが存在しません。
path のパス接頭辞に、ディレクトリでない構成要素があります。
次の条件のどれかが該当する場合、fgetlabel() の処理は失敗します。
fd は、開いたファイルの有効な記述子ではありません。
label_p が、無効なアドレスを指しています。
ファイルシステムに対する読み取りまたは書き込みで I/O エラーが発生しました。
次の属性については、attributes(5) を参照してください。
属性タイプ |
属性値 |
---|---|
使用条件 |
SUNWcslr |
インタフェースの安定性 |
安定 |