elf_rand(3E) elf_rand(3E)
NAME
elfrand - Auf Archivkomponenten wahlfrei zugreifen
SYNTAX
cc [option ...] datei ... -lelf [bibliothek ...]
#include <libelf.h>
sizet elfrand(Elf *elf, sizet offset);
BESCHREIBUNG
elfrand(), elfnext() und elfbegin() manipulieren einfache Objektda-
teien und Archive. elf ist ein ELF-Deskriptor, der zuvor von
elfbegin() zurückgegeben wurde.
elfrand() erlaubt die wahlfreie Bearbeitung von Archivkomponenten.
elf wird auf den Zugriff auf eine beliebige Archivkomponente vorberei-
tet. elf muß ein Deskriptor für das Archiv selbst sein und nicht etwa
für eine Komponente innerhalb des Archivs. offset gibt den Byte-Offset
des Archivkopfs der gewünschten Komponente an, gerechnet vom Anfang
des Archivs. Unter elfgetarsym(3E) finden Sie weitere Informationen
über die Offsets von Archivkomponenten. Wenn der Aufruf von elfrand()
gelingt, wird offset zurückgegeben. Wenn ein Fehler auftrat, elf
gleich Null war, oder wenn die Datei kein Archiv war (keine Archivkom-
ponente kann einen Null-Offset haben), wird 0 zurückgegeben. Ein Pro-
gramm kann die wahlweise und sequentielle Archivbearbeitung gemischt
verwenden.
BEISPIELE
Ein Archiv beginnt mit einer "magischen Zeichenkette" mit der Länge
von SARMAG-Bytes; darauf folgt sofort die erste Archivkomponente. Ein
Anwendungsprogramm kann daher die folgende Funktion verwenden, um ein
Archiv zurückzusetzen (die Funktion liefert -1 bei Fehler; ansonsten
wird 0 zurückgegeben).
#include <ar.h>
#include <libelf.h>
int
rewindelf(Elf *elf)
{
if (elfrand(elf, (sizet)SARMAG) == SARMAG)
return 0;
return -1;
}
SIEHE AUCH
elf(3E), elfbegin(3E), elfgetarsym(3E), elfnext(3E), ar(4).
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98