ELF_GETARHDR(3ELF) ELF Library Functions ELF_GETARHDR(3ELF)
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; uid_t ar_uid; gid_t ar_gid; mode_t 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() on
elf_begin(3ELF)).
// 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.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Stable |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+
SEE ALSO
elf(3ELF),
elf_begin(3ELF),
elf_getarsym(3ELF),
ar.h(3HEAD),
libelf(3LIB),
attributes(7) July 11, 2001
ELF_GETARHDR(3ELF)