ファイルの 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]