---
name: "acl_get_fd"
section: "3"
platform: "linux"
package: "acl"
version: "2.4.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/acl_get_fd"
---

# acl\_get\_fd(3)

get an ACL by file descriptor

## NAME

**acl\_get\_fd** – get an ACL by file descriptor

## LIBRARY

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

## SYNOPSIS

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

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

*acl\_t*\

**acl\_get\_fd**(*int fd*);

## DESCRIPTION

The **acl\_get\_fd**() function retrieves the access ACL associated with the file referred to by *fd*. The ACL is placed into working storage and **acl\_get\_fd**() 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.

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* returned by **acl\_get\_fd**() as an argument.

## RETURN VALUE

On success, this function shall return a pointer to the working storage.  On error, a value of (acl\_t)NULL shall be returned, and *errno* is set appropriately.

## ERRORS

If any of the following conditions occur, the **acl\_get\_fd**() function returns a value of (acl\_t)NULL and sets *errno* to the corresponding value:

- \[EBADF\]

  The *fd* argument is not a valid file descriptor.

- \[ENOMEM\]

  The ACL working storage requires more memory than is allowed by the hardware or system-imposed memory management constraints.

- \[ENOTSUP\]

  The file system on which the file identified by *fd* is located does not support ACLs, or ACLs are disabled.

## STANDARDS

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

## SEE ALSO

[acl\_free(3)](/acl_free/3.md), [acl\_get\_entry(3)](/acl_get_entry/3.md), [acl\_get\_file(3)](/acl_get_file/3.md), [acl\_set\_fd(3)](/acl_set_fd/3.md), [acl(5)](/acl/5.md)

## 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⟩.
