elf_strptr(3E) elf_strptr(3E)
NAME
elfstrptr - Zeiger auf Zeichenkette erzeugen
SYNTAX
cc [option ...] datei ... -lelf [bibliothek ...]
#include <libelf.h>
char *elfstrptr(Elf *elf, sizet section, sizet offset);
BESCHREIBUNG
Diese Funktion konvertiert den Abschnitt mit Zeichenketten bei offset
in einen Zeiger auf eine Zeichenkette. elf bezeichnet die Datei, in
der sich der Zeichenkettenabschnitt befindet, und section gibt den
Abschnittstabellenindex für die Zeichenketten an. elfstrptr() liefert
normalerweise einen Zeiger auf eine Zeichenkette; ein Nullzeiger wird
zurückgegeben, wenn elf gleich Null ist, section ungültig ist, oder
wenn es sich nicht um einen Abschnitt des Typs SHTSTRTAB handelt, die
Abschnittsdaten nicht gelesen werden können, offset ungültig ist, oder
wenn ein Fehler auftritt.
BEISPIELE
Eine Vorlage zum Lesen von Abschnittsnamen ist im folgenden angeführt.
Der Dateikopf definiert die Tabelle mit den Abschnittsnamen in der
Komponente eshstrndx. Der folgende Programmauszug durchläuft die
Abschnitte und gibt deren Namen aus.
if ((ehdr = elf32getehdr(elf)) == 0)
{
/* Fehlerbehandlung */
return;
}
ndx = ehdr->eshstrndx;
scn = 0;
while ((scn = elfnextscn(elf, scn)) != 0)
{
char *name = 0;
if ((shdr = elf32getshdr(scn)) != 0)
name = elfstrptr(elf, ndx, (sizet)shdr->shname);
printf("'%s'\n", name? name: "(Null)");
}
HINWEISE
Ein Programm kann elfgetdata() aufrufen, um einen kompletten
Abschnitt mit Zeichenketten zu lesen. Für einige Anwendungsprogramme
ist dies sowohl effizienter als auch gebräuchlicher als die Verwendung
von elfstrptr().
SIEHE AUCH
elf(3E), elfgetdata(3E), elfgetshdr(3E), elfxlate(3E).
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98