ELF_GETARHDR(3E)ELF_GETARHDR(3E)


NAME
     elf_getarhdr - Retrieves 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.  If no archive member header
     exists, an error occurred, or elf was null, elf_getarhdr 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).  The following are definitions of special member
     names (ar_name):

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