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
Vt Elf_Arsym
structures.
An
Vt Elf_Arsym
structure has the following elements:
Vt char * as_name
This structure member is a pointer to a null-terminated symbol name.
Vt 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_rand3.
Vt unsigned long as_hash
This structure member contains a portable hash value for the symbol
name, as computed by
elf_hash3.
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
Vt 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:
Bq Er ELF_E_ARGUMENT
Argument
elf
was NULL.
Bq Er ELF_E_ARGUMENT
Argument
elf
was not a descriptor for an
ar(1)
archive.