名前 | 形式 | 機能説明 | 戻り値 | 属性 | エラー | 関連項目
cc [flags...] file... -ltsol
#include <tsol/label.h> m_label_t *getzonelabelbyid(zoneid_t zoneid);
m_label_t *getzonelabelbyname(const char *zonename);
zoneid_t *getzoneidbylabel(const m_label_t *label);
getzonelabelbyid() 関数は、zoneid の必須アクセス制御 (MAC) ラベルを返します。
getzonelabelbyname() 関数は、zonename という名前のゾーンの MAC ラベルを返します。
getzoneidbylabel() 関数は、label という名前のラベルを持つゾーンのゾーン ID を返します。
これらのすべての関数で、指定されたゾーンの状態が ZONE_IS_READY であることが最低限必要です。呼び出し元プロセスのゾーンが指定されたゾーンのラベルに対して優位にあるか、呼び出し元プロセスが大域ゾーン内に存在する必要があります。
成功時に、getzonelabelbyid() および getzonelabelbyname() 関数は、これらの関数内部で割り当てられている機密ラベルへのポインタを返します。記憶領域を解放するには、 m_label_free(3TSOL) を使用します。ゾーンが存在しない場合は、NULL が返されます。
成功時に、getzoneidbylabel() 関数は一致するラベルを持つゾーン ID を返します。一致するゾーンが存在しない場合、この関数は -1 を返します。
次の属性については、attributes(5) を参照してください。
属性タイプ |
属性値 |
---|---|
使用条件 |
SUNWcslr |
MT レベル |
安全 |
インタフェースの安定性 |
安定 |
getzonelabelbyid() 関数と getzonelabelbyname() 関数は、次の場合に失敗します。
指定されたゾーンが存在しません。
getzonelabelbyid() 関数は、次の場合に失敗します。
指定されたラベルに対応するゾーンが存在しません。