Linker, Loader und ausführbare Formate

Welcher Verwendungszweck der Linux-Funktion dlopen (entspricht LoadLibrary unter Windows) ist am treffendsten?

  1. ADen Quellcode eines Programms zu öffnen und zu bearbeiten
  2. BWie bei einem Plug-in zur Laufzeit eine benötigte Shared Library zu laden und eine Funktion aufzurufen
  3. CEine Datei zu öffnen und die darin enthaltenen Daten zu lesen und zu schreiben
Antwort und Erläuterung anzeigen

Antwort: B. Wie bei einem Plug-in zur Laufzeit eine benötigte Shared Library zu laden und eine Funktion aufzurufen

Beim gewöhnlichen dynamischen Linken steht die verwendete Shared Library schon beim Start fest. Mit dlopen kann man zur Laufzeit eine Bibliothek per Namen laden, mit dlsym die Adresse einer Funktion holen und sie aufrufen. Da sich die zu verwendende Bibliothek über Einstellungen oder die Wahl der Anwenderin oder des Anwenders bestimmen lässt, wird es häufig für Plug-in-Mechanismen und die Umsetzung optionaler, bei Vorhandensein genutzter Funktionen verwendet.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Linker, Loader und ausführbare Formate

  1. Wie wird der physische Speicher genutzt, wenn 100 Prozesse dieselbe Shared Library verwenden?
  2. Beim Disassemblieren einer Objektdatei hatte das Sprungziel des Befehls, der die externe Funktion printf aufruft, einen vorläufigen Wert wie 0. Wann wird dieser Wert korrekt eingetragen?
  3. Welche Aufgabe hat ein in der Embedded-Entwicklung verwendetes Linker-Skript?
  4. Welche Verarbeitung führt der Startcode bei einem Mikrocontroller ohne Betriebssystem unmittelbar nach dem Einschalten aus, bevor er main aufruft?
  5. Was ist der Unterschied zwischen „Section“ und „Segment“ in ELF-Dateien?

Vergleiche zu diesem Thema