acl_copy_ext(3) — Linux manual page


ACL_COPY_EXT(3)          Library Functions Manual        ACL_COPY_EXT(3)

NAME         top

       acl_copy_ext — copy an ACL from internal to external

LIBRARY         top

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

SYNOPSIS         top

       <sys/types.h> <sys/acl.h> ssize_t acl_copy_ext(void *buf_p, acl_t
       acl, ssize_t size)

DESCRIPTION         top

       The acl_copy_ext() function copies the ACL pointed to by acl from
       system-managed space to the user managed space pointed to by
       buf_p.  The size parameter represents the size in bytes of the
       buffer pointed to by buf_p.  The format of the ACL placed in the
       buffer pointed to by buf_p is a contiguous, persistent data item,
       the format of which is unspecified.  It is the responsibility of
       the invoker to allocate an area large enough to hold the copied
       ACL. The size of the exportable, contiguous, persistent form of
       the ACL may be obtained by invoking the acl_size() function.

       Any ACL entry descriptors that refer to an entry in the ACL
       referenced by acl continue to refer to those entries. Any
       existing ACL pointers that refer to the ACL referenced by acl
       continue to refer to the ACL.

RETURN VALUE         top

       Upon success, this function returns the number of bytes placed in
       the buffer pointed to by buf_p.  On error, a value of (ssize_t)-1
       is returned and errno is set appropriately.

ERRORS         top

       If any of the following conditions occur, the acl_copy_ext()
       function returns a value of (ssize_t)-1 and sets errno to the
       corresponding value:

       [EINVAL]           The size parameter is zero or negative.

                          The argument acl is not a valid pointer to an

                          The ACL referenced by acl contains one or more
                          improperly formed ACL entries, or for some
                          other reason cannot be translated into the
                          external form of an ACL.

       [ERANGE]           The size parameter is greater than zero but
                          smaller than the length of the contiguous,
                          persistent form of the ACL.

STANDARDS         top

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

SEE ALSO         top

       acl_copy_int(3), acl_size(3), acl(5)

AUTHOR         top

       Derived from the FreeBSD manual pages written by Robert N M
       Watson <>, and adapted for Linux by Andreas
       Gruenbacher <>.

COLOPHON         top

       This page is part of the acl (manipulating access control lists)
       project.  Information about the project can be found at  If you have a bug
       report for this manual page, see
       ⟨⟩.  This page was
       obtained from the project's upstream Git repository
       ⟨git://⟩ on 2023-12-22.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2023-12-01.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to

Linux ACL                    March 23, 2002              ACL_COPY_EXT(3)