Retrieve archive symbol table
elf_Arsym *elf_getarsym(Elf * elf, size_t * ptr);
elf_getarsym returns a pointer to the archive symbol table, if one is available for the ELF descriptor elf. Otherwise, the archive does not have a symbol table, an error occurred, or elf was null; elf_getarsym then returns a null value. The symbol table is an array of structures that include the following members.
char *as_name; size_t as_off; unsigned long as_hash;
These members have the following semantics.
|as_name||A pointer to a null-terminated symbol name resides here.|
|as_off||This value is a byte offset from the beginning of the archive to the member's header. The archive member residing at the given offset defines the associated symbol. Values in as_off may be passed as arguments to elf_rand to access the desired archive member.|
|as_hash||This is a hash value for the name, as computed by elf_hash.|
If ptr is non-null, the library stores the number of table entries in the location to which ptr points. This value is set to zero when the return value is null. The tables last entry, which is included in the count, has a null as_name, a zero value for as_off, and ~0UL for as_hash.
The ar file format.
The elf_getarhdr (elf_getarhdr Subroutine) subroutine, elf_hash (elf_hash Subroutine) subroutine, elf_rand (elf_rand Subroutine) subroutine.
Introduction to ELF Subroutines.