nlist - gets entries from name list
#include <nlist.h>
nlist(
char *filename,
struct nlist [nl] );
cc ... -lmld
NOTE
The nlist() subroutine has moved from the standard C
library to the libmld.a library due to the difference in
the object file format. Programs that need to use nlist()
must be linked with the -lmld flag.
The nlist() subroutine examines the name list in the given
executable output file and selectively extracts a list of
values. The name list consists of an array of structures
containing names, types, and values. The list is terminated
with a null name.
Each 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. If the name is not
found, both entries are set to 0.
For BSD compatibility, the nlist() subroutine allows symbol
names to be preceded by an underscore. If it does not
find a symbol that matches the name as specified, nlist()
attempts to locate the symbol name with the leading underscore
removed.
For the structure declaration, see /usr/include/nlist.h.
To obtain up-to-date system addresses from the system name
list kept in the file /vmunix, use the knlist() subroutine.
Alternatively, use the getsysinfo() function to
obtain the name of the file from which the kernel was
booted, prepend a slash character (/) to this name, and
supply the prepended name to the nlist() subroutine. Do
not specify /vmunix as the filename to the nlist() subroutine
because it may cause nlist() to return invalid symbol
addresses.
If the file cannot be found or if it is not a valid
namelist, -1 is returned; otherwise, the number of unfound
namelist entries is returned.
The type entry is set to 0 if the symbol is not found.
getsysinfo(2), knlist(3), a.out(4)
nlist(3)
[ Back ] |