EN JA
ACL_TO_TEXT(3)
ACL_TO_TEXT(3) FreeBSD Library Functions Manual ACL_TO_TEXT(3)

名称

acl_to_text, acl_to_text_npACL をテキストに変換する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < sys/types.h>
#include < sys/acl.h>

char *
acl_to_text( acl_t acl, ssize_t *len_p);

char *
acl_to_text_np( acl_t acl, ssize_t *len_p, int flags);

解説

acl_to_text() と acl_to_text_np() 関数は、引数 acl によって指される ACL をヌル文字で終了する文字列に変換します。ポインタ len_p が NULL でない場合、関数は、 len_p によって指される位置で文字列 (ヌルの終端を含まずに) の長さを返します。 ACL が POSIX.1e であるなら、 acl_to_text() によって返されたテキスト文字列の形式は、POSIX.1e のロング ACL 形式となるでしょう。 ACL が NFSv4 であるなら、テキスト文字列の形式は、 ACL_TEXT_VERBOSE フラグが与えられないなら、コンパクト形式になるでしょう。

指定されたフラグは、次の値と 論理 (or) することによって形成されます。

ACL_TEXT_VERBOSE 冗長なフォームを使用して ACL をフォーマットする
ACL_TEXT_NUMERIC_IDS ID をユーザまたはグループ名に還元しません
ACL_TEXT_APPEND_ID ユーザとグループ名に加えて, 数値 ID を追加する

この関数は文字列を含んでいるのに必要などんなメモリも割り付けて、文字列へのポインタを返します。引数として (void*)characl_free(3) を呼ぶことによって、新しい文字列がもはや要求されない場合、呼び出し側はどんな解放可能なメモリも解放するべきです。

実装に関する注

FreeBSD の POSIX.1e インタフェースおよび特徴のサポートはまだこの時期に開発中です。

戻り値

成功して終了すれば、関数は ACL のロングテキスト形式へのポインタを返します。そうでなければ、 (char*)NULL の値が返されます。また、 errno は、エラーを示す値が設定されます。

エラー

下記条件のうちのどれかが生じる場合、 acl_to_text() 関数は、 (acl_t)NULL の値を返し、対応する値を errno に設定します。
[ EINVAL]
引数 acl は有効な ACL を指していません。

acl によって表示された ACL は 1 つ以上の不適切に形式化された ACL エントリを含んでいるか、あるいは他のある理由のために ACL のテキスト形式に翻訳することができません。

[ ENOMEM]
返される文字列はハードウェアあるいはソフトウェア限度のメモリ管理制約によって許可されるより多くのメモリを要求します。

規格

POSIX.1e は、IEEE の POSIX.1e の草案の 17 に記述されています。草案の議論は、クロスプラットフォームの POSIX.1e 実装メーリングリストで継続しています。このリストに加入するための、より詳しい情報については、 FreeBSD POSIX.1e 実装ページを参照してください。

歴史

POSIX.1e サポートは、 FreeBSD 4.0 で導入され、開発は継続しています。

作者

Robert N M Watson

バグ

acl_from_text() と acl_to_text() 関数は、グループ名および gid マッピングを管理するために呼び出す getgrent(3) ライブラリと同様に、ユーザ名および uid マッピングを管理するために呼び出す getpwent(3) ライブラリに依存します。これらの呼び出しはスレッドセーフではありません。 acl_from_text() と acl_to_text() のどちらも過渡的そうです。これらの関数は、さらに、 getpwent() と getgrent() 呼び出しに関連した処理状態を把握する呼び出しに干渉できます。
June 25, 2009 FreeBSD