Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: July 2017
 
 

elf_getarsym(3ELF)

Name

elf_getarsym - retrieve archive symbol table

Synopsis

cc [ flag ... ] file ... –lelf [ library ... ]
#include <libelf.h>

Elf_Arsym *elf_getarsym(Elf *elf, size_t *ptr);

Description

The elf_getarsym() function returns a pointer to the archive symbol table, if one is available for the ELF descriptor elf. Otherwise, the archive doesn't 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;
ulong_t   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(). See elf_begin(3ELF) 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 0 when the return value is NULL. The table's 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 hash value returned is guaranteed not to be the bit pattern of all ones ( ~0UL).

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
MT-Safe

See Also

ar.h(3HEAD), elf(3ELF), elf_begin(3ELF), elf_getarhdr(3ELF), elf_hash(3ELF), libelf(3LIB), attributes(5)