---
name: "nlist"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/nlist"
---

# nlist(3)

retrieve symbol table name list from an executable file

## NAME

**nlist** – retrieve symbol table name list from an executable file

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<nlist.h\>**

*int*\

**nlist**(*const char \*filename*, *struct nlist \*nl*);

## DESCRIPTION

The **nlist**() function retrieves name list entries from [elf(5)](/elf/5.md) sections with type SHT\_DYNSYM or SHT\_SYMTAB in an ELF object (for example, an executable file or shared library). This function is provided for compatibility with legacy applications. Its use is discouraged.

The argument *nl* is set to reference the beginning of the list. The list is preened of binary and invalid data; if an entry in the name list is valid, the *n\_type* and *n\_value* for the entry are copied into the list referenced by *nl*. No other data is copied. The last entry in the list is always NULL.

## RETURN VALUES

The number of invalid entries is returned if successful; otherwise, if the file *filename* does not exist or is not executable, the returned value is -1.

## SEE ALSO

[elf(5)](/elf/5.md), [stab(5)](/stab/5.md)

## HISTORY

A **nlist**() function appeared in Version 6 AT&T UNIX.
