[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    elf_getarsym(3E) manual page Table of Contents

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);

MT-Level

Unsafe

Description

elf_getarsym() 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;
    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(). See elf_begin(3E) 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 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).

See Also

elf(3E) , elf_begin(3E) , elf_getarhdr(3E) , elf_hash(3E) , ar(4)


Table of Contents