[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]

Technical Reference: Base Operating System and Extensions, Volume 1

elf_getarsym Subroutine


Retrieve archive symbol table


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


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.

Related Information

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.

[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]