FreeBSD manual
download PDF document: elf_getarsym.3.pdf
ELF_GETARSYM(3) FreeBSD Library Functions Manual ELF_GETARSYM(3)
NAME
elf_getarsym - retrieve the symbol table of an archive
LIBRARY
ELF Access Library (libelf, -lelf)
SYNOPSIS
#include <libelf.h>
Elf_Arsym *
elf_getarsym(Elf *elf, size_t *ptr);
DESCRIPTION
The function elf_getarsym() retrieves the symbol table for an ar(1)
archive, if one is available.
Argument elf should be a descriptor for an ar(1) archive opened using
elf_begin() or elf_memory().
If the archive elf contains a symbol table with n entries, this function
returns a pointer to an array of n+1 Elf_Arsym structures. An Elf_Arsym
structure has the following elements:
char * as_name
This structure member is a pointer to a null-terminated symbol
name.
off_t as_off
This structure member contains the byte offset from the beginning
of the archive to the header for the archive member. This value
is suitable for use with elf_rand(3).
unsigned long as_hash
This structure member contains a portable hash value for the
symbol name, as computed by elf_hash(3).
The last entry of the returned array will have a NULL value for member
as_name, a zero value for member as_off and an illegal value of ~0UL for
as_hash.
If argument ptr is non-null, the elf_getarsym() function will store the
number of table entries returned (including the sentinel entry at the
end) into the location it points to.
RETURN VALUES
Function elf_getarsym() returns a pointer to an array of Elf_Arsym
structures if successful, or a NULL pointer if an error was encountered.
If argument ptr is non-null and there was no error, the library will
store the number of archive symbol entries returned into the location it
points to. If argument ptr is non-null and an error was encountered, the
library will set the location pointed to by it to zero.
ERRORS
Function elf_getarsym() may fail with the following errors:
[ELF_E_ARGUMENT] Argument elf was NULL.
[ELF_E_ARGUMENT] Argument elf was not a descriptor for an ar(1) archive.