この例は、Confidential で共有メモリー領域の識別子を作成し、この同じ共有メモリー領域の CMW ラベルを取得します。このプログラムは、Top Secret で動作しています。
#include <sys/tsol/ipc.h> #include <sys/types.h> #include <tsol/label.h> #include <sys/shm.h> main() { int id, retval, error, pid; bclabel_t cmwlabel; bslabel_t senslabel; char *string = (char *)0; retval = stobsl("CONFIDENTIAL", &senslabel, NEW_LABEL, &error); /* Confidential の共有メモリー領域を作成する */ /* 有効セット内で ipc_mac_write をオン (有効) にする */ id = shmgetl(IPC_PRIVATE, 256, IPC_CREAT|0666, &senslabel); /* ipc_mac_write をオフ (無効) にする */ /* 共有メモリー領域の CMW ラベルを得る */ /* 有効セット内で ipc_mac_read をオン (有効) にする */ retval = getshmcmwlabel(id, &cmwlabel); /* ipc_mac_read をオフ (無効) にする */ /* CMW ラベルを出力する */ bcltos(&cmwlabel, &string, 0, LONG_WORDS); printf("CMW label = %s¥n", string); }
printf(1) 文によって、次のように出力されます。
CMW label = UNCLASSIFIED[C]