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

# acl\_from\_text(3)

create an ACL from text

## NAME

**acl\_from\_text** – create an ACL from text

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

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

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

*acl\_t*\

**acl\_from\_text**(*const char \*buf\_p*);

## DESCRIPTION

The **acl\_from\_text**() function converts the text form of an ACL referred to by *buf\_p* into the internal working structure for ACLs, appropriate for applying to files or manipulating.

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.

## IMPLEMENTATION NOTES

The ACL\_TYPE\_EXTENDE text format differs from the POSIX.1e format, and this function will not translate between formats.

## RETURN VALUES

Upon successful completion, the function shall return a pointer to the internal representation of the ACL in 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\_from\_text**() function shall return a value of *(acl\_t)NULL* and set *errno* to the corresponding value:

- \[EINVAL\]

  Argument *buf\_p* cannot be translated into an ACL.

- \[ENOMEM\]

  The ACL working storage 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), [acl\_get(3)](/acl_get/3.md), [acl\_to\_text(3)](/acl_to_text/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
