Trusted Solaris 開発ガイド

ファイル CMW ラベルの取得

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