---
name: "nlist"
section: "3"
platform: "linux"
package: "libbsd-dev"
version: "0.8.3-1"
release: "Debian 9 (Stretch)"
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

library “libbsd”

## SYNOPSIS

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

*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 [a.out(5)](/a.out/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, the returned value is -1.

## SEE ALSO

[a.out(5)](/a.out/5.md)

## HISTORY

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