statacl または fstatacl サブルーチン
目的
ファイルの AIXC ACL タイプのアクセス制御情報を取得します。
ライブラリー
標準 C ライブラリー (libc.a)
構文
#include <sys/acl.h>
#include <sys/stat.h>
int fstatacl (FileDescriptor, Command, ACL, ACLSize)
int FileDescriptor;
int Command;
struct acl *ACL;
int ACLSize;
int FileDescriptor;
int Command;
struct acl *ACL;
int ACLSize;
説明
statacl および fstatacl サブルーチンは、関連する ACL が AIXC タイプの場合に、ファイル・システム・オブジェクトのアクセス制御情報を返します。 関連付けられている ACL のタイプが異なる場合、または基礎となる物理ファイル・システムが AIXC ACL タイプをサポートしていない場合は、これらのインターフェースによってエラーが返される可能性があります。 statacl サブルーチンを NFS V4 ファイルで使用すると、無効な結果が返されます。
パラメーター
| 項目 | 説明 |
|---|---|
| パス | ファイルのパス名へのポインターを指定します。 |
| FileDescriptor | これは、オープン・ファイルのファイル・ディスクリプターを指定します。 |
| Command | Pathのパス解釈のモードを指定します。具体的には、シンボリック・リンクまたはマウント・ポイントに関する情報を取得するかどうかを指定します。 Command パラメーターの有効な値は、 stat.h ファイルに定義されており、以下のものが含まれます。
|
| acl | ファイルシステム・オブジェクトの AIXC タイプのアクセス制御リスト (ACL) を入れるバッファーを指すポインターを指定します。 AIXC ACL のフォーマットは、 sys/acl.h ファイルに定義され、以下のメンバーを含んでいます。
基本 ACL のメンバー (所有者、グループ、およびその他) には、 sys/access.h ファイルに定義されている以下のビットを入れることができます。
|
| ACLSize (ACLSize) | ACL を入れるバッファーのサイズを指定します。 この値が小さすぎる場合、ACL の最初のワードは、必要なバッファーのサイズに設定されます。 |
戻り値
正常終了すると、 statacl および fstatacl サブルーチンは値 0 を戻します。 そうでない場合は-1が返され、エラーを示すerrnoグローバル変数が設定される。
エラー・コード
以下の 1 つ以上が該当する場合、 statacl サブルーチンは失敗します。
| 項目 | 説明 |
|---|---|
| ENOTDIR | Path 接頭部のコンポーネントがディレクトリーではありません。 |
| ENOENT | Path のコンポーネントが存在しないか、 disallow truncation 属性を持っています ( ulimit サブルーチンを参照)。 |
| ENOENT | Path パラメーターがヌルでした。 |
| EACCES | Path 接頭部のコンポーネントに対する検索許可が拒否されました。 |
| EFAULT | Path パラメーターが、プロセスの割り振られたアドレス・スペースの外部の場所を指しています。 |
| ESTALE | プロセスのルート・ディレクトリーまたは現行ディレクトリーは、アンマウントされた仮想ファイル・システム内にあります。 |
| ELOOP | Path パラメーターの変換中に検出されたシンボリック・リンクが多すぎます。 |
| ENOENT | シンボリック・リンクが指定されましたが、それが参照するファイルが存在しません。 |
| ENAMETOOLONG | Path パラメーターのコンポーネントが 255 文字を超えているか、または Path パラメーター全体が 1023 文字を超えています。 |
以下が真の場合、 fstatacl サブルーチンは失敗します。
| 項目 | 説明 |
|---|---|
| EBADF | ファイル・ディスクリプター FileDescriptor が無効です。 |
以下の 1 つ以上が該当する場合、 statacl または fstatacl サブルーチンは失敗します。
| 項目 | 説明 |
|---|---|
| EFAULT | ACL パラメーターが、プロセスの割り振り済みアドレス・スペースの外部の場所を指しています。 |
| EINVAL | Command パラメーターは、 STX_LINK、 STX_MOUNT、 STX_NORMALの値ではありません。 |
| ENOSPC | ACLSize パラメーターは、 ACL のバッファーが小さすぎてアクセス制御リストを保持できないことを示します。 この場合、バッファーの最初のワードは、必要なバッファーのサイズに設定されます。 |
| EIO | 操作中に入出力エラーが発生しました。 |
ご使用のシステムにネットワーク・ファイル・システム (NFS) がインストールされている場合、以下の条件が満たされていると、 statacl および fstatacl サブルーチンも失敗する可能性があります。
| 項目 | 説明 |
|---|---|
| ETIMEDOUT | 接続がタイムアウトになりました。 |