ACL\_DUP(3) Library Functions Manual ACL\_DUP(3)

# [NAME](#NAME)

`acl_dup` — duplicate an ACL

# [LIBRARY](#LIBRARY)

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

# [SYNOPSIS](#SYNOPSIS)

`#include <sys/types.h>`  
`#include <sys/acl.h>`

`acl_t`  
`acl_dup`(`acl_t acl`);

# [DESCRIPTION](#DESCRIPTION)

The [`acl_dup`](#acl_dup)() function returns a pointer to a copy of the ACL pointed to by `acl`.

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)](/man/os/acl/acl_free.3) with the `(void*)acl_t` returned by [`acl_dup`](#acl_dup~2)() as an argument.

# [RETURN VALUE](#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](#ERRORS)

If any of the following conditions occur, the `acl_dup`() function returns a value of `(acl_t)NULL` and sets `errno` to the corresponding value:

\[[`EINVAL`](#EINVAL)]

The argument `acl` is not a valid pointer to an ACL.

\[[`ENOMEM`](#ENOMEM)]

The `acl_t` to be returned requires more memory than is allowed by the hardware or system-imposed memory management constraints.

# [STANDARDS](#STANDARDS)

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

# [SEE ALSO](#SEE_ALSO)

[acl\_free(3)](/man/os/acl/acl_free.3), [acl\_get\_entry(3)](/man/os/acl/acl_get_entry.3), [acl(5)](/man/os/acl/acl.5)

# [AUTHOR](#AUTHOR)

Derived from the FreeBSD manual pages written by Robert N M Watson ⟨rwatson@FreeBSD.org⟩, and adapted for Linux by Andreas Gruenbacher ⟨andreas.gruenbacher@gmail.com⟩.

March 23, 2002 Linux ACL

---

Document: acl_dup(3) from acl 2.4.0-r3 (Chainguard OS)
Source: https://git.savannah.nongnu.org/git/acl.git
