elf_getphdr(3E) elf_getphdr(3E)
NAME
elfgetphdr: elf32getphdr, elf32newphdr - Klassenabhängige Programm-
kopftabelle lesen
SYNTAX
cc [option ...] datei ... -lelf [bibliothek ...]
#include <libelf.h>
Elf32Phdr *elf32getphdr(Elf *elf);
Elf32Phdr *elf32newphdr(Elf *elf, sizet count);
BESCHREIBUNG
elf32getphdr() liefert für eine Datei der 32-Bit-Klasse einen Zeiger
auf die Programmkopftabelle, sofern eine solche für den ELF-Deskriptor
elf verfügbar ist.
elf32newphdr() allokiert eine neue Tabelle mit count-Einträgen, unab-
hängig davon, ob bereits eine solche existierte, und setzt für die
Tabelle das ELFFDIRTY-Bit [siehe elfflag(3E]). Durch die Angabe von
Null für count wird eine bereits vorhandene Tabelle gelöscht. Bitte
beachten Sie, daß sich dieses Verhalten von elf32newehdr() unter-
scheidet [siehe elfgetehdr(3E)], denn es ermöglicht dem Programm, die
Programmkopftabelle zu ersetzen oder zu löschen, und falls nötig,
dabei die Größe anzupassen.
Falls keine Programmkopftabelle existiert, die Datei keine Datei der
32-Bit-Klasse ist, ein Fehler auftrat oder elf den Wert Null enthielt,
liefern beide Funktionen einen Nullzeiger als Ergebnis zurück. Außer-
dem liefert elf32newphdr() einen Nullzeiger, wenn count gleich Null
ist.
Die Tabelle ist ein Feld aus Elf32Phdr-Strukturen, wobei jede von
ihnen folgende Komponenten enthält:
Elf32Word ptype;
Elf32Off poffset;
Elf32Addr pvaddr;
Elf32Addr ppaddr;
Elf32Word pfilesz;
Elf32Word pmemsz;
Elf32Word pflags;
Elf32Word palign;
Die Komponente ephnum aus dem ELF-Dateikopf gibt an, wieviele Ein-
träge die Programmkopftabelle enthält [siehe elfgetehdr(3E]). Ein
Programm kann diesen Wert abfragen, um die Größe einer bereits vorhan-
denen Tabelle zu bestimmen. elf32newphdr() setzt den Wert dieser Kom-
ponente automatisch auf count. Wenn das Programm eine neue Datei
erzeugt, ist es dafür verantwortlich, daß der ELF-Kopf vor der Pro-
grammkopftabelle erzeugt wird.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
elf_getphdr(3E) elf_getphdr(3E)
SIEHE AUCH
elf(3E), elfbegin(3E), elfflag(3E), elfgetehdr(3E).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98