2 Vorladen von dynamischen Bibliotheken
Manchmal moechte man nicht eine ganze dynamische Bibliothek, sondern nur einige Funktionen ersetzen.
Da der dynamische Lader nach Funktionen sucht, indem er bei der ersten geladenen Bibliothek beginnt
und dann in den anderen Bibliotheken in der Reihenfolge fortfaehrt, in der diese geladen wurden,
reicht es zunaechst aus, nur eine neue Bibliothek zu laden, die nur die neuen Funktionen enthaelt,
die zu ersetzen sind.
Ein Beispiel hierzu ist die Bibliothek zlibc, die Funktionen, welche von der C-Bibliothek
zur Dateibearbeitung angebogen werden, durch eigene Funktionen ersetzt, die mit komprimierten
Dateien arbeiten koennen, Wird eine Datei geoeffnet, sucht zlibc sowohl nach der angegebenen
Datei als auch nach einer mit gzip gepackten Version dieser Datei. Findet es die angegebenen
ungepackte Datei, verhaelt sich die entsprechende Funktion genauso wie die Version dieser Funktion
in der C-Bibliothek. Existiert die angegebene Datei aber nicht, dafuer aber eine gepackte Version
dieser Datei, entpackt sie diese, ohne dass sich das aufrufende Programm darum muss. Um eine
Bibliothek vorzuladen, gibt es zwei Moeglichkeiten:
1.) Setzen der Environment-Variable LD_PRELOAD
1 $ LD_PRELOAD=/lib/vorlad.o exec /bin/programm $*
2.) Eintragen der vorzuladenden Objectdateien in die Datei /etc/ld.so.preload. Fuer die Bibliothek
zlibc koennte die folgende Zeile in die Datei /etc/ld.so.preload eingetragen werden:
/lib/uncompress.o
Zurueck || Index || Vor