elf_getarhdr(3E)

elf_getarhdr - retrieve archive member header

As shipped in IRIX 6.5. First release of IRIX 6.5.

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 characters 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).