---
name: "nlist"
section: "3bsd"
platform: "linux"
package: "libbsd"
version: "0.12.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/nlist/3bsd"
---

# nlist(3bsd)

retrieve symbol table name list from an executable file

## NAME

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

## LIBRARY

library “libbsd”

## SYNOPSIS

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

(See [libbsd(7)](/libbsd/7.md) for include usage.)

*int*\

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

## DESCRIPTION

The **nlist**() function retrieves name list entries from the symbol table of an executable file (see [elf(5)](/elf/5.md)). 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, or the nl pointer is NULL, the returned value is -1.

## SEE ALSO

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

## HISTORY

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