getacl.2 (2010 09)

g
getacl(2) getacl(2)
NAME
getacl, fgetacl - get access control list (ACL) information (HFS File Systems only)
SYNOPSIS
#include <sys/acl.h>
int getacl(
const char *path,
int nentries,
struct acl_entry *acl
);
int fgetacl(int fildes, int nentries, struct acl_entry *acl);
DESCRIPTION
getacl() returns a complete listing of all ACL entries (uid.gid , mode) in an existing file’s access control
list. path points to a path name of a file.
Similarly,
fgetacl() returns a complete listing of all ACL entries for an open file known by the file
descriptor fildes .
nentries is the number of entries being reported on, and is never more than the constant
NACLENTRIES
defined in <sys/acl.h>. If nentries is non-zero, it must be at least as large as the number of entries in
the file’s ACL, including base entries (see setacl (2)). getacl() returns the number of entries in the
file’s ACL, as well as the ACL entries themselves in the array of structures acl declared by the calling pro-
gram.
If nentries is zero,
getacl() returns the number of entries in the file’s ACL, including base ACL
entries, and acl is ignored.
Entries are reported in groups of decreasing order of specificity (see setacl (2)), then sorted in each group
by user ID and group ID. The content of array entries beyond the number of defined entries for the file is
undefined.
RETURN VALUE
Upon successful completion, getacl() and fgetacl() return a non-negative value. If an error
occurs, a value of 1 is returned, and errno is set to indicate the error.
ERRORS
getacl() fails to modify the acl array if any of the following is true:
[ENOTDIR] A component of the path prefix is not a directory.
[ENOENT] The named file does not exist (for example, path is null or a component of path does
not exist).
[EACCES] A component of the path prefix denies search permission.
[EFAULT] path or a portion of acl to be written points outside the allocated address space of
the process.
[EINVAL] nentries is non-zero and less than the number of entries in the file’s ACL, or it is
greater than
NACLENTRIES.
[EOPNOTSUPP]
getacl() is not supported on remote files by some networking services.
[ENOSYS] The function is not supported by this file system type.
[ENFILE] The system file table is full.
[ENAMETOOLONG]
The length of path exceeds
PATH_MAX bytes, or the length of a component of path
exceeds NAME_MAX bytes while _POSIX_NO_TRUNC is in effect.
[ELOOP] Too many symbolic links were encountered in translating the path name.
fgetacl() fails to modify the acl array if any of the following is true:
[EBADF] fildes is not a valid file descriptor.
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)