名称
acltostr() ― アクセス制御リスト (ACL) 構造体の文字列形式への変換
構文
#include <acllib.h>
char *acltostr(int nentries, const struct acl_entry
acl[], int form);
廃止インタフェース
int acltostr_r(
int nentries,
const struct acl_entry acl[],
int form,
char *strbuf,
int length);
特記事項
今後の業界標準に準拠するため、このマニュアルエントリーで説明した機能は、
将来変更されることがあります。
説明
acltostr() は、アクセス制御リストを構造体形式から文字列表現に変換します。 acltostr() は、指定された有効な
(0 以上の) エントリー番号 nentries) が格納された、 ACL エントリーの配列の 1 番目の要素
(acl) へのポインターと、 出力形式 (FORM_SHORT または FORM_LONG)
のパラメータをもち、 null 文字で終わる ACL の記号表現である静的文字列
(次回の呼び出しでオーバーライトされます) へのポインターを返します。
出力形式は acl(5) で説明しています。
長い形式の場合、返される文字列にはニューライン文字が含まれます。
ACL_NSUSER のユーザー ID と ACL_NSGROUP のグループ
ID は、どちらも % で表されます。 エントリーで、 /etc/passwd または /etc/group に記述されていないユーザー
ID またはグループ ID が含まれている場合、 ls コマンド ls(1) 参照) と同じように、 代わりに
ID 番号と等価の文字列を返します。
/etc/passwd ファイルを管理するルーチンと同じように、 acltostr() はユーザー名とグループ名を 8 文字に切り捨てます。
注記: acltostr() は、 strtoacl() を機能的に補うものです。
廃止インタフェース
acltostr_r() は、アクセス制御リスト (ACL) 構造体を文字列形式に変換します。
戻り値
acltostr() が正常終了すると、null で終わる文字列へのポインターが返されます。 nentries が 0 以下の場合は、文字列の長さは 0 になります。 nentries が NACLENTRIES (<sys/acl.h>
で定義されています) よりも大きい場合、または form が無効な値の場合は、 (char *) NULL が返されます。
acltostr_r() が正常終了すると、0 が返されます。失敗すると、-1
が返され、 errno がセットされます。 nentries が 0 以下の場合は、文字列の長さは 0 になります。
エラー
| [EINVAL] | | strbuf が NULL に等しい、 nentries が NACLENTRIES (<sys/acl.h>
で定義されています) より大きい、 form が有効なフォームでない、 または strbuf の length が短すぎる場合 |
| [ERANGE] | | length が 0 以下の場合 |
例
次のコードは、 /users/ggd/test ファイルの
ACL を読み込み、短い形式で出力します。
#include <stdio.h>
#include <acllib.h>
int nentries;
struct acl_entry acl [NACLENTRIES];
if ((nentries = getacl ( /users/ggd/test", NACLENTRIES, acl)) < 0)"
error (...);
fputs (acltostr (nentries, acl, FORM_SHORT), stdout);
警告
acltostr() の返す値がバッファーへのポインターの場合、その内容は
同じスレッドが acltostr() を呼び出すたびにオーバーライトされます。
acltostr_r() インタフェースは廃止され、現在では既存の
DCE アプリケーションとの互換性を保つためにだけサポートされています。新しいマルチスレッドアプリケーションでは、 acltostr() を使用してください。
著者
acltostr() は HP で開発されました。
ファイル
/etc/passwd
/etc/group
参照
getacl(2), setacl(2), cpacl(3C), chownacl(3C), setaclentry(3C),
strtoacl(3C), acl(5), thread_safety(5)