ファイルの機密ラベルを取得し、そのラベルに対して操作を実行できます。
このコーディング例では、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 |