elf_getarhdr -- retrieve archive member header


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

#include <libelf.h>

Elf_Arhdr *elf_getarhdr(Elf *elf);


elf_getarhdr(S) 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_rawname, is a null-terminated string, with the ar(FP) 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(S). The information in the symbol table is useful for random archive processing (see elf_rand(S)).

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.


Error conditions are identified through the routine elf_error(S).

See also

ar(FP), elf(S), elf_begin(S), elf_getarsym(S), elf_rand(S)

Standards conformance

elf_getarhdr(S) is not part of any currently supported standard; it was developed by UNIX System Laboratories, Inc. and is maintained by The SCO Group.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003