nlist(3C)
NAME
nlist − get entries from name list
SYNOPSIS
#include <nlist.h>
int nlist (file-name, nl)
char ∗file-name;
struct nlist ∗nl;
DESCRIPTION
nlist examines the name list in the executable file whose name is pointed to by file-name, and selectively extracts a list of values and puts them in the array of nlist structures pointed to by nl. The name list nl consists of an array of structures containing names of variables, types and values. The list is terminated with a null name; that is, a null string is in the name position of the structure. Each variable name is looked up in the name list of the file. If the name is found, the type and value of the name are inserted in the next two fields. The type field will be set to 0 unless the file was compiled with the −g option. If the name is not found, both entries are set to 0. See a.out(4) for a discussion of the symbol table structure.
This function is useful for examining the system name list kept in the file /unix. In this way programs can obtain system addresses that are up to date.
NOTES
The <nlist.h> header file is automatically included by <a.out.h> for compatability. However, if the only information needed from <a.out.h> is for use of nlist, then including <a.out.h> is discouraged. If <a.out.h> is included, the line ”#undef n_name” may need to follow it.
The structures returned by the AT&T SYSV.2 nlist and the 4.2BSD nlist are quite different. In particular, the n_other and n_desc fields do not appear in the SYSV.2 version of the structure, the n_scnum, n_sclass, and n_numaux fields do not appear in the 4.2BSD version of the structure, and the n_type field has entirely different meanings. CX/UX provides the SYSV.2 version of this routine in both the att and ucb universes. Most 4.2BSD programs do not reference the n_desc or n_other fields, and use the n_type field only to detect whether the symbol was found in the object file. A very simple change makes these programs work with the SYSV.2 nlist: instead of comparing n_type against 0 to determine whether the symbol was found, compare both n_type and n_value against 0.
SEE ALSO
DIAGNOSTICS
All value entries are set to 0 if the file cannot be read or if it does not contain a valid name list.
nlist returns −1 upon error; otherwise it returns 0.
CX/UX Programmer’s Reference Manual