Wenn Sie LD_PRELOAD einstellen in den Pfad eines gemeinsam genutzten Objekts, wird diese Datei vorher geladen jede andere Bibliothek (einschließlich der C-Laufzeit, libc.so ). Also ls ausführen mit Ihrem speziellen malloc() Implementierung, gehen Sie wie folgt vor:
$ LD_PRELOAD=/path/to/my/malloc.so /bin/ls
Sie können Symbole in den Bestandsbibliotheken überschreiben, indem Sie eine Bibliothek mit denselben Symbolen erstellen und die Bibliothek in LD_PRELOAD angeben .
Einige Leute verwenden es, um Bibliotheken an nicht standardmäßigen Orten anzugeben, aber LD_LIBRARY_PATH ist für diesen Zweck besser geeignet.
Mit LD_PRELOAD Sie können Bibliotheken Vorrang geben.
Sie können zum Beispiel eine Bibliothek schreiben, die malloc implementiert und free . Und indem Sie diese mit LD_PRELOAD laden Ihr malloc und free statt der Standard ausgeführt werden.