elf_getarhdr(3E) elf_getarhdr(3E)
NAME
elfgetarhdr - Mitglied einer Archivdatei auslesen
SYNTAX
cc [option ...] datei ... -lelf [bibliothek ...]
#include <libelf.h>
ElfArhdr *elfgetarhdr(Elf *elf);
BESCHREIBUNG
elfgetarhdr() liefert einen Zeiger auf den Kopf eines Mitglieds einer
Archivdatei, vorausgesetzt, über den angegebenen ELF-Deskriptor elf
ist eine solcher verfügbar. Andernfalls ist entweder kein Kopf eines
Mitglieds der Archivdatei vorhanden, es trat ein Fehler auf, oder elf
war gleich Null; elfgetarhdr() liefert in diesem Fall den Wert Null
als Ergebnis. Der Kopf enthält folgende Komponenten:
char *arname;
timet ardate;
long aruid;
long argid;
unsigned long armode;
offt arsize;
char *arrawname;
Der Name eines Elements des Archivs, angesprochen durch arname, ist
eine durch ein Nullzeichen beendete Zeichenkette, bei der die ar-
Format-Steuerzeichen entfernt wurden. Die Komponente arrawname ent-
hält eine durch ein Nullzeichen beendete Zeichenkette, die den origi-
nalen Namen in der Datei darstellt, einschließlich des abschließenden
Schrägstrichs und der führenden Leerzeichen, wie sie im Archivformat
vorgesehen sind.
Zusätzlich zu den "normalen" Archivmitgliedern definiert das Archiv-
format einige spezielle Mitglieder. Die Namen aller besonderen Mit-
glieder beginnen mit einem Schrägstrich (/). Dadurch unterscheiden sie
sich von regulären Mitgliedern (deren Namen keine Schrägstriche ent-
halten). Diese besonderen Mitglieder haben folgende Namen (arname).
/ Dies ist die Symboltabelle der Archivdatei. Wenn sie vorhanden
ist, wird sie das erste Mitglied der Bibliotheksdatei sein. Ein
Programm kann auf die Symboltabelle des Archivs über die Funktion
elfgetarsym() zugreifen. Die Information in der Symboltabelle
ist für die wahlfreie Bearbeitung der Archivdatei von Nutzen
[siehe elfrand(3E)].
// Dieses Mitglied enthält, falls vorhanden, die Zeichenkettenta-
belle für die langen Namen von Mitgliedern des Archivs. Der Kopf
eines Archivmitglieds enthält einen 16-Byte-Bereich für dessen
Namen. Diese Grenze kann in einigen Dateisystemen überschritten
werden. Die Bibliothek verwendet automatisch für solch lange
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
elf_getarhdr(3E) elf_getarhdr(3E)
Namen die Zeichenkettentabelle; arname wird dabei auf den rich-
tigen Wert gesetzt.
In einigen Fehlersituationen kann es vorkommen, daß der Name eines
Mitglieds nicht zur Verfügung steht. Auch wenn in diesem Fall arname
für diese Bibliothek auf Null gesetzt wird, wird arrawname wie üblich
gesetzt.
SIEHE AUCH
elf(3E), elfbegin(3E), elfgetarsym(3E), elfrand(3E), ar(4).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98