---
name: "acl_init"
section: "3"
platform: "macos"
package: "Libc"
version: "1752.120.2"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/acl_init"
---

# acl\_init(3)

initialize ACL working storage

## NAME

**acl\_init** – initialize ACL working storage

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<sys/types.h\>**

**#include \<sys/acl.h\>**

*acl\_t*\

**acl\_init**(*int count*);

## DESCRIPTION

The **acl\_init**() function allocates and initializes the working storage for an ACL of at least *count* ACL entries.  A pointer to the working storage is returned.  The working storage allocated to contain the ACL is freed by a call to [acl\_free(3)](/acl_free/3.md). When the area is first allocated, it shall contain an ACL that contains no ACL entries.

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)](/acl_free/3.md) with the *(void\*)acl\_t* as an argument.

## RETURN VALUES

Upon successful completion, this function shall return a pointer to the working storage.  Otherwise, a value of *(acl\_t)NULL* shall be returned, and *errno* shall be set to indicate the error.

## ERRORS

If any of the following conditions occur, the **acl\_init**() function shall return a value of *(acl\_t)NULL* and set *errno* to the corresponding value:

- \[EINVAL\]

  The value of count is less than zero.

- \[ENOMEM\]

  The *acl\_t* to be returned requires more memory than is allowed by the hardware or system-imposed memory management constraints.

## SEE ALSO

[acl(3)](/acl/3.md), [acl\_free(3)](/acl_free/3.md), [posix1e(3)](/posix1e/3.md)

## STANDARDS

POSIX.1e is described in IEEE POSIX.1e draft 17.

## AUTHORS

Michael Smith Robert N M Watson
