# acl_get_file

## NAME



           **acl_get_file** — get an ACL by filename
    


## LIBRARY



           Linux Access Control Lists library (libacl, -lacl).
    


## SYNOPSIS



           <_sys/types.h_ > <_sys/acl.h_ > _acl_t_ **acl_get_file**(_const char *path_p_ ,
           _acl_type_t type_)
    


## DESCRIPTION



           The **acl_get_file**() function retrieves the access ACL associated
           with a file or directory, or the default ACL associated with a
           directory. The pathname for the file or directory is pointed to by
           the argument _path_p_.  The ACL is placed into working storage and
           **acl_get_file**() returns a pointer to that storage.
    
           In order to read an ACL from an object, a process must have read
           access to the object's attributes.
    
           The value of the argument _type_ is used to indicate whether the
           access ACL or the default ACL associated with _path_p_ is returned.
           If _type_ is ACL_TYPE_ACCESS, the access ACL of _path_p_ is returned.
           If _type_ is ACL_TYPE_DEFAULT, the default ACL of _path_p_ is
           returned. If _type_ is ACL_TYPE_DEFAULT and no default ACL is
           associated with the directory _path_p_ , then an ACL containing zero
           ACL entries is returned. If _type_ specifies a type of ACL that
           cannot be associated with _path_p_ , then the function fails.
    
           This function may cause memory to be allocated.  The caller should
           free any releasable memory, when the new ACL is no longer
           required, by calling _acl_free_(3) with the _(void*)acl_t_ returned by
           **acl_get_file**() as an argument.
    


## RETURN VALUE



           On success, this function returns a pointer to the working
           storage.  On error, a value of **(acl_t)NULL** is returned, and _errno_
           is set appropriately.
    


## ERRORS



           If any of the following conditions occur, the **acl_get_file**()
           function returns a value of **(acl_t)NULL** and sets _errno_ to the
           corresponding value:
    
           [EACCES]           Search permission is denied for a component of
                              the path prefix or the object exists and the
                              process does not have appropriate access
                              rights.
    
                              Argument _type_ specifies a type of ACL that
                              cannot be associated with _path_p_.
    
           [EINVAL]           The argument _type_ is not ACL_TYPE_ACCESS or
                              ACL_TYPE_DEFAULT.
    
           [ENAMETOOLONG]     The length of the argument _path_p_ is too long.
    
           [ENOENT]           The named object does not exist or the argument
                              _path_p_ points to an empty string.
    
           [ENOMEM]           The ACL working storage requires more memory
                              than is allowed by the hardware or system-
                              imposed memory management constraints.
    
           [ENOTDIR]          A component of the path prefix is not a
                              directory.
    
           [ENOTSUP]          The file system on which the file identified by
                              _path_p_ is located does not support ACLs, or
                              ACLs are disabled.
    


## STANDARDS



           IEEE Std 1003.1e draft 17 (“POSIX.1e”, abandoned)
    


* * *