acl_set_file()

Set the access control list for a path

Synopsis:

#include <sys/acl.h>

int acl_set_file( const char *path_p,
                  acl_type_t type,
                  acl_t acl );

Arguments:

path_p
The path that you want to set the ACL for.
type
The type of ACL; this must currently be ACL_TYPE_ACCESS.
acl
The ACL that you want to assign to the object.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The acl_set_file() function sets the access control list for a given path. The calling process's effective user ID must match the owner of the directory, or the process must have appropriate privileges in order to set the ACL. The ACL must also be valid, as defined by acl_valid().

If this function succeeds, the object's file permission bits might change; if it fails, the object's ACL and file permission bits aren't changed.

Returns:

0, or -1 if an error occurred (errno is set).

Errors:

EACCES
Search permission was denied for a component of the path prefix, or the object exists and the process doesn't have the appropriate access rights.
EINVAL
The type argument isn't ACL_TYPE_ACCESS.
ENAMETOOLONG
The length of the path_p argument exceeds PATH_MAX.
ENOENT
The named object doesn't exist, or path_p is an empty string.
ENOSPC
The directory or filesystem that would contain the new ACL can't be extended, or the filesystem is out of file allocation resources.
ENOTDIR
A component of the path prefix isn't a directory.
EPERM
The process doesn't have the appropriate privileges to set the ACL.
EROFS
The filesystem that the object is on is currently read-only.

Classification:

QNX Neutrino

This function is based on the withdrawn POSIX draft P1003.1e.

Safety:  
Cancellation point No
Interrupt handler No
Signal handler No
Thread Yes