LDREADST(3X) LDREADST(3X)
ldreadst - read symbolt table information
#include <stdio.h>
#include <filehdr.h>
#include <syms.h>
#include <ldfcn.h>
int ldreadst(LDFILE * ldptr, int flags );
ldreadst reads in the portions of the symbol table implied by the flags
argument. A flags argument of -1 reads in the entire symbol table.
Since the other symbol table routines, for example ldtbread, ensure that
the relevant portions of the symbol table have been read in, you need not
call ldreadst to use the other routines. ldreadst(ldptr,-1) would simply
ensure the whole symbol table is read in at once, which is not necessary.
ldreadst is useful, however. One can test for the existence of symbol
table information in a file in the following way:
char *filename;
LDFILE *ldptr;
ldptr = ldopen(filename, (LDFILE *)0);
if(ldptr == NULL) {
/* No such file exists */
} else {
/* This is not the _only_ way one could test for
** the existence of the symbol table.
*/
if(ldreadst(pchdr,-1) == FAILURE) {
/* This binary has no symbol table */
}
}
ldreadst returns SUCCESS if it has read in the symbol table successfully
or FAILURE if it cannot. If an symbol table has been truncated or
damaged there is a small probability that ldreadst will core dump rather
than return FAILURE .
The program must be loaded with the object file access routine library
libmld.a.
ldopen(3S), ldclose(3X), ldfcn(4).
PPPPaaaaggggeeee 1111 [ Back ]
|