ACL_EQUIV_MODE_NP(3)

NAME
acl_equiv_mode_np - check if ACL can be represented as UNIX permissions

LIBRARY
libc

SYNOPSIS
#include <sys/types.h>
#include <sys/acl.h>
int
acl_equiv_mode_np(acl_t acl, mode_t* mode_p);

DESCRIPTION
The acl_equiv_mode_np() function is a non-portable call which checks that entries contained in the acl argument use only the ACL_USER_OBJ, ACL_GROUP_OBJ, and ACL_OTHER tag types, and that permissions contained in these entries consist only of ACL_READ, ACL_WRITE and ACL_EXECUTE. If the check succeeds, the ACL can be represented as traditional UNIX file permissions bits set.

If mode_p is not NULL and the check succeeds, the function fills the argument with a mode value corresponding to permissions contained in the ACL.

RETURN VALUES
Upon successful completion, the function returns 0 if the ACL can be represented as UNIX permissions and 1 if it is not possible. Otherwise, a value of -1 is returned, and errno is set to indicate the error.

ERRORS
If any of the following conditions occur, the acl_equiv_mode_np() function returns a value of -1 and set errno to the corresponding value:

[EINVAL]
    Argument acl does not point to a valid ACL.

SEE ALSO
acl(3), acl_from_mode_np(3), posix1e(3)

STANDARDS
POSIX.1e is described in IEEE POSIX.1e draft 17. Discussion of the draft continues on the cross-platform POSIX.1e implementation mailing list. To join this list, see the FreeBSD POSIX.1e implementation page for more information.

HISTORY
POSIX.1e support was introduced in FreeBSD 4.0, and development continues.

AUTHORS
Gleb Popov