nlist(3bsd) 3bsd nlist(3bsd)

# [NAME](#NAME)

`nlist` — retrieve symbol table name list from an executable file

# [LIBRARY](#LIBRARY)

library “libbsd”

# [SYNOPSIS](#SYNOPSIS)

`#include <nlist.h>` (See [libbsd(7)](/man/os/libbsd/libbsd.7) for include usage.)  
`int`  
`nlist`(`const char *filename`, `struct nlist *nl`);

# [DESCRIPTION](#DESCRIPTION)

The [`nlist`](#nlist)() function retrieves name list entries from the symbol table of an executable file (see [elf(5)](/man/os/libbsd/elf.5)). 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](#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](#SEE_ALSO)

[elf(5)](/man/os/libbsd/elf.5)

# [HISTORY](#HISTORY)

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

April 19, 1994 Linux 4.19.0-gvisor

---

Document: nlist(3bsd) from libbsd 0.12.2-r9 (Chainguard OS)
Source: https://gitlab.freedesktop.org/libbsd/libbsd
