nlist(3E) nlist(3E)
NAME
nlist - get entries from name list
SYNOPSIS
cc [flag . . . ] file . . . -lelf [library] . . .
#include <nlist.h>
int nlist (const char *file, struct nlist *nl);
DESCRIPTION
nlist examines the name list in the executable file whose name
is pointed to by file, 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, value, storage class, and section number of the name are
inserted in the other fields. The type field may be set to 0
if the file was not compiled with the -g option to cc(1).
nlist will always return the information for an external
symbol of a given name if the name exists in the file. If an
external symbol does not exist, and there is more than one
symbol with the specified name in the file (such as static
symbols defined in separate files), the values returned will
be for the last occurrence of that name in the file. If the
name is not found, all fields in the structure except n_name
are set to 0.
If you want to examine symbols in a running kernel (and these
symbols are associated with a dynamically loaded module), then
you must use ioctl [see kmem(7)] or getksym(2), instead of
nlist. To learn if a module is dynamically loaded, check to
see if it is present in /etc/conf/mod.d.
Return Values
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 0 on success, -1 on error.
REFERENCES
a.out(4), elf(3E), getksym(2), kmem(7)
Copyright 1994 Novell, Inc. Page 1