Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

elf(3E)

elf_begin(3E)

elf_getarhdr(3E)

elf_hash(3E)

ar(4)

elf_getarsym(3E)

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_tas_off;
unsigned longas_hash;

These members have the following semantics. 

as_nameA pointer to a NULL-terminated symbol name resides here. 

as_offThis 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_hashThis 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)

SunOS 5.5/SPARC  —  Last change: 22 Jan 1993

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026