Trusted Solaris 開発ガイド

認可上限構造の初期化

認可上限は、ADMIN_LOW または ADMIN_HIGH に初期化したり、その型を検査したりできます。次の例は、undefNULL に似た未定義の状態に初期化し、loclearADMIN_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