getacl(2) getacl(2)
NAME [Toc] [Back]
getacl, fgetacl - get access control list (ACL) information (HFS File
Systems only)
SYNOPSIS [Toc] [Back]
#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 [Toc] [Back]
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
program.
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 [Toc] [Back]
Upon successful completion, getacl() and fgetacl() return a nonnegative
value. If an error occurs, a value of -1 is returned, and
errno is set to indicate the error.
ERRORS [Toc] [Back]
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.
Hewlett-Packard Company - 1 - HP-UX 11i Version 2: August 2003
getacl(2) getacl(2)
[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.
[EINVAL] nentries is non-zero and less than the number of
entries in the file's ACL, or it is greater than
NACLENTRIES.
[ENOSYS] The function is not supported by this file system
type.
[ENFILE] The system file table is full.
EXAMPLES [Toc] [Back]
The following call returns the number of entries in the ACL on file
/users/bill/mcfile.
#include <sys/acl.h>
entries = getacl ("/users/bill/mcfile", 0, (struct acl_entry *) 0);
Hewlett-Packard Company - 2 - HP-UX 11i Version 2: August 2003
getacl(2) getacl(2)
The following call returns in acl all entries in the ACL on the file
opened with file descriptor 5.
#include <sys/acl.h>
int nentries;
struct acl_entry acl [NACLENTRIES];
entries = fgetacl (5, NACLENTRIES, acl);
DEPENDENCIES [Toc] [Back]
getacl() and fgetacl() are only supported on HFS file system on
standard HP-UX operating system.
AUTHOR [Toc] [Back]
getacl() and fgetacl() were developed by HP.
SEE ALSO [Toc] [Back]
access(2), chmod(2), getaccess(2), setacl(2), stat(2), unistd(5).
Hewlett-Packard Company - 3 - HP-UX 11i Version 2: August 2003 [ Back ] |