認可上限は、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