Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ elf_rawfile(3E) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

elf(3E)

elf_rawfile(3E)                                             elf_rawfile(3E)

NAME
     elfrawfile - Nicht interpretierten Dateiinhalt lesen

SYNTAX
     cc [option ...] datei ... -lelf [bibliothek ...]

     #include <libelf.h>

     char *elfrawfile(Elf *elf, sizet *ptr);

BESCHREIBUNG
     elfrawfile() liefert einen Zeiger auf eine nicht interpretierte Spei-
     cherdarstellung der Datei. Diese Funktion sollte nur verwendet werden,
     um eine gerade gelesene Datei wieder zu erhalten. Beispielsweise kann
     ein Programm elfrawfile() verwenden, um die unveränderten Bytes einer
     Archivkomponente zu erhalten.

     Ein Programm darf den Dateideskriptor, der mit elf verknüpft ist,
     nicht schließen oder deaktivieren [siehe elfcntl(3E)], bevor der
     erste Aufruf von elfrawfile gemacht wurde, da elfrawfile() die Daten
     unter Umständen noch aus der Datei lesen muß, wenn die Daten noch
     nicht im Speicher stehen. Im allgemeinen ist diese Funktion für unbe-
     kannte Dateitypen effizienter als für Objektdateien. Die Bibliothek
     übersetzt die Objektdateien implizit im Speicher, während unbekannte
     Dateien unverändert bleiben. Die Anforderung einer uninterpretierten
     Abbildung einer Objektdatei kann daher zu einer doppelten Kopie der
     Datei im Speicher führen.

     elfrawdata() [siehe elfgetdata(3E)] ist eine verwandte Funktion,
     welche den Zugriff auf Abschnitte innerhalb einer Datei erlaubt.

     Ist ptr ungleich Null, so speichert die Bibliothek die Dateigröße (in
     Bytes) an der Adresse, auf die ptr zeigt. Sind keine Daten verfügbar,
     ist elf gleich Null; tritt ein Fehler auf, ist der Rückgabewert ein
     Nullzeiger; in ptr wird Null abgelegt.

HINWEISE
     Ein Programm, das elfrawfile() benutzt und das die gleiche Datei als
     Objektdatei interpretiert, hat möglicherweise zwei Kopien einer Datei
     im Speicher. Wenn solch ein Programm die nicht interpretierte Speiche-
     rabbildung vor den übersetzten Informationen anfordert (durch Funktio-
     nen wie elfgetehdr(), elfgetdata() etc.), "friert" die Bibliothek
     die ursprüngliche Speicherkopie für die nicht interpretierte Abbildung
     ein. Die eingefrorene Kopie wird als Quelle zur Erzeugung von über-
     setzten Objekten verwendet, ohne daß die Datei neu gelesen wird. Die
     Anwendung sollte die nicht interpretierte Dateiabbildung, die durch
     elfrawfile() zurückgegeben wird, lediglich als lesbaren Puffer behan-
     deln, es sei denn, es soll die Betrachtungsweise der zu übersetzenden
     Daten geändert werden. In jedem Fall kann das Anwendungsprogramm die
     übersetzten Objekte ändern, ohne daß die Daten der nicht interpretier-
     ten Abbildung verändert werden. Mehrfaches Aufrufen von elfrawfile()
     mit demselben ELF-Deskriptor liefert den gleichen Wert zurück; die



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

elf_rawfile(3E)                                             elf_rawfile(3E)

     Bibliothek erzeugt keine doppelten Dateikopien.

SIEHE AUCH
     elf(3E), elfbegin(3E), elfcntl(3E), elfgetdata(3E),
     elfgetehdr(3E), elfgetident(3E), elfkind(3E).

















































Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026