Solaris Trusted Extensions 開発ガイド

ラベルのカラー名の取得

このコーディング例では、label_to_str() 関数を使用してラベルのカラー名を取得します。カラー名とラベルのマッピングは label_encodings ファイルで定義します。

#include <stdlib.h>
#include <stdio.h>

#include <tsol/label.h>

int
main()
{
   m_label_t *plabel;
   char *label = NULL;
   char *color = NULL;

   plabel = m_label_alloc(MAC_LABEL);

   if (getplabel(plabel) == -1) {
      perror("getplabel");
      exit(1);
   }

   if (label_to_str(plabel, &color, M_COLOR, 0) != 0) {
      perror("label_to_string(M_COLOR)");
      exit(1);
   }
   if (label_to_str(plabel, &label, M_LABEL, DEF_NAMES) != 0) {
      perror("label_to_str(M_LABEL)");
      exit(1);
   }

   printf("The color for the \"%s\" label is \"%s\".\n, label, color);

   m_label_free(plabel);

   return (0);
}

label_encodings ファイルで青がラベル CONFIDENTIAL にマップされている場合、プログラムの出力は次のようになります。


The color for the "CONFIDENTIAL" label is "BLUE".