このコーディング例は、プログラムが実行されるゾーンの機密ラベルを取得し、出力する方法を示します。
#include <tsol/label.h> main() { m_label_t* pl; char *plabel = NULL; int retval; /* プロセス機密ラベルの m_label_t を割り当てる */ pl = m_label_alloc(MAC_LABEL); /* プロセス機密ラベルを取得する */ if ((retval = getplabel(pl)) != 0) { perror("getplabel(pl) failed"); exit(1); } /* プロセス機密ラベルをテキストに変換し、出力する */ if ((retval = label_to_str(pl, &plabel, M_LABEL, LONG_NAMES)) != 0) { perror("label_to_str(M_LABEL, LONG_NAMES) failed"); exit(1); } printf("Process label = %s\n", plabel); /* 割り当てられたメモリーを解放する */ m_label_free(pl); free(plabel); }
printf() 文は機密ラベルを出力します。機密ラベルは、プログラムが実行されるゾーンから継承されます。次は、この例のプログラムから出力されたテキストです。
Process label = ADMIN_LOW |
テキスト出力は、label_encodings ファイルでの指定に依存します。