nlist(ELF)
nlist, nlist32, nlist64 --
get entries from name list
Synopsis
cc [flag . . . ] file . . . -lelf [library] . . .
#include <nlist.h>
int nlist (const char file, struct nlist nl);
int nlist32 (const char *file, struct nlist *);
int nlist64 (const char *file, struct nlist64 *);
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(C).
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.
nlist and nlist32 are used with 32-bit ELF
objects. nlist64 is used with 64-bit ELF objects.
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(HW)]
or
getksym(S),
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(F),
Intro(ELF),
getksym(S),
kmem(HW)
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 - 02 June 2005