ファイルの機密ラベルを取得し、そのラベルに対して操作を実行できます。
このコーディング例では、getlabel() ルーチンを使用してファイルのラベルを取得します。fgetlabel() ルーチンを同様に使用できますが、ファイル記述子に関して機能します。
#include <tsol/label.h> main() { m_label_t* docLabel; const char* path = "/zone/restricted/documents/designdoc.odt"; int retval; char* label_string; /* ラベルを割り当てて、パスによって指定されるファイルラベルを取得する */ docLabel = m_label_alloc(MAC_LABEL); retval = getlabel(path, docLabel); /* ファイルラベルを文字列に変換し、出力する */ retval = label_to_str(docLabel, &label_string, M_LABEL, LONG_NAMES); printf("The file's label = %s\n", label_string); /* 割り当てられたメモリーを解放する */ m_label_free(docLabel); free(label_string); }
このプログラムを実行した場合の出力は、次のようになります。
The file's label = CONFIDENTIAL : INTERNAL USE ONLY |