Amiga Unix — 68040 · 68060

Manual pages › Libraries: curses, OPEN LOOK and others (3)

elf_getarhdr(3)

retrieve archive member header

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

NAME

elf_getarhdr - retrieve archive member header

SYNOPSIS

cc [flag ...] file ...  -lelf [library ...]

#include <libelf.h>

Elf_Arhdr *elf_getarhdr(Elf *elf);

DESCRIPTION

elf_getarhdr returns a pointer to an archive member  header,
if  one is available for the ELF descriptor elf.  Otherwise,
no archive member header exists, an error occurred,  or  elf
was  null;  elf_getarhdr  then  returns  a  null value.  The
header includes the following members.
             char            *ar_name;
             time_t          ar_date;
             long            ar_uid;
             long            ar_gid;
             unsigned long   ar_mode;
             off_t           ar_size;
             char            *ar_rawname;
An archive member name,  available  through  ar_name,  is  a
null-terminated  string,  with the ar format control charac-
ters removed.  The ar_rawname member holds a null-terminated
string  that represents the original name bytes in the file,
including the  terminating  slash  and  trailing  blanks  as
specified in the archive format.  In addition to ``regular''
archive members, the archive  format  defines  some  special
members.   All  special member names begin with a slash (/),
distinguishing them from regular members  (whose  names  may
not  contain a slash).  These special members have the names
(ar_name) defined below.

/ This is the archive symbol table. If present, it will be the first archive member. A program may access the archive symbol table through elf_getarsym. The information in the symbol table is useful for random archive processing [see elf_rand(3E)].

// This member, if present, holds a string table for long archive member names. An archive member's header contains a 16-byte area for the name, which may be exceeded in some file systems. The library automatically retrieves long member names from the string table, setting ar_name to the appropriate value. Under some error conditions, a member's name might not be available. Although this causes the library to set ar_name to a null pointer, the ar_rawname member will be set as usual.

SEE ALSO

elf(3E), elf_begin(3E), elf_getarsym(3E), elf_rand(3E),
ar(4).