次に、MLD と SLD の情報を取得するプログラミングインタフェースを示します。
システムコールを使用して、SLD 名、MLD 装飾、SLD または MLD のファイル属性情報などを取得できます。
getsldname(2) システムコールは、 path_name (パス名) に対する SLD 名を、指定された slabel (機密ラベル) で取得します。詳細は、getsldname(2) のマニュアルページを参照してください。fgetsldname(2) システムコールは、ファイル記述子を使用します。
int getsldname( const char *path_name, const bslabel_t *slabel, char *name_buf, const int len); int fgetsldname( const int fd, const bslabel_t *slabel_p, char *name_buf, const int len);
getmldadorn(2) システムコールは、path_name に対する完全な装飾名を取得します。fgetmldadorn(2) システムコールは、ファイル記述子を使用します。詳細は、getmldadorn(2) のマニュアルページを参照してください。
int getmldadorn( const char *path_name, char *adorn_buf[MLD_ADORN_MAX]); int fgetmldadorn( const int fd, char adorn_buf[MLD_ADORN_MAX]);
mldstat(2) システムコールは、path_name によって指定された MLD のファイル属性情報を返します。mldlstat(2) システムコールは、MLD シンボリックリンクの情報を返します。詳細は、mldstat(2) のマニュアルページを参照してください。
int mldstat( const char *path_name, struct stat *stat_buf); int mldlstat( const char *path_name, struct stat *stat_buf);
次のシステムコールの詳細は、第 2 章「プログラミングインタフェースの概要」の 「ファイルシステムのセキュリティ属性フラグの取得と設定」を参照してください。また、getfattrflag(2) のマニュアルページも参照してください。
int mldgetfattrflag( const char *path, secflgs_t *flags) int mldsetfattrflag( const char * path, secflgs_t which, secflgs_t flags))
ライブラリルーチンを使用して、現在の作業ディレクトリのパス名取得や、装飾を使用したパス名表示が行えます。
次のルーチンは、現在の作業ディレクトリの完全な装飾名を取得します。詳細は、mldgetcwd(3) のマニュアルページを参照してください。
char* mldgetcwd( char *buf, size_t size);
次のルーチンは、path_name で指定された MLD に対する装飾名を取得します。詳細は、adornfc(3) のマニュアルページを参照してください。
int adornfc( const char *path_name, char *adorned_name);
次のルーチンは、path_name で指定されたパス名を受け取り、すべてのシンボリックリンクを展開し、現在のディレクトリと親ディレクトリに対する相対パス名の参照を解決し、余分なスラッシュ文字を削除し、正しい MLD および SLD 装飾を加え、最終結果を resolved_path (解決済みパス) に格納します。この結果は、プロセスが動作している SLD、または指定された SLD のパス名を示します。詳細は、mldrealpath(3) のマニュアルページを参照してください。
char* mldrealpath( const char *path_name, char *resolved_path); char * mldrealpathl( const char *path_name, char *resolved_path, const bslabel_t *senslabel);