ファイルの CMW ラベルを取得した際に、CMW ラベルを一単位として処理することも、機密ラベル部を抽出し、機密ラベル部だけを処理することもできます。
次の例では、ファイルの CMW ラベルを取得し、機密ラベル部を抽出します。ファイル記述子を取得する fgetcmwlabel(2) とシンボリックリンクを取得する lgetcmwlabel(2) ルーチンもこの例と同じ方法で使用できます。
#include <tsol/label.h> main() { int retval, length = 0; bclabel_t fileCMWlabel; bslabel_t fsenslabel; char *string = (char *)0; /* ファイルの CMW ラベルを得る */ retval = getcmwlabel("/export/home/zelda/afile", &fileCMWlabel); /* 機密ラベル部を得る */ getcsl(&fsenslabel, &fileCMWlabel); /* ファイルの CMW ラベルを ASCII 文字列に変換して、出力する */ retval = bcltos( &fileCMWlabel, &string, length, LONG_CLASSIFICATION); printf("File CMW label = %s¥n", string); }
File CMW label = CONFIDENTIAL [C]