認可上限は、ADMIN_LOW または ADMIN_HIGH に初期化したり、その型を検査したりできます。次の例は、undef を NULL に似た未定義の状態に初期化し、loclear を ADMIN_LOW に初期化しています。その後、loclear の型を検査し、その型を未定義に設定し、再び検査します。認可上限は、ID フィールドが SUN_CLR_UN に初期化される場合、未定義の状態です。未定義の認可上限は無効です。認可上限は、ラベル構造内の ID フィールドが SUN_CLR_ID に初期化されるときに定義されます。
#include <tsol/label.h>
main()
{
int retval;
bclear_t loclear, undef;
bclearlow(&loclear);
bclearundef(&undef);
retval = bltype(&loclear, SUN_CLR_ID);
printf("Is clearance defined? %d¥n", retval);
setbltype(&loclear, SUN_CLR_UN);
retval = bltype(&loclear, SUN_CLR_ID);
printf("Is clearance defined? %d¥n", retval);
}
printf(1) 文によって、次のように出力されます。0 以外は true で、0 は false です。
Is clearance defined? 1
Is clearance defined? 0