Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > G

getacl(2)

HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

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 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

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.

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

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);

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

getacl() and fgetacl() are only supported on HFS file system on standard HP-UX operating system.

AUTHOR

getacl() and fgetacl() were developed by HP.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.