Linker, Loader und ausführbare Formate

Was geschieht im Allgemeinen mit dem Wert 3, wenn die Funktion main in C mit „return 3;“ endet?

  1. AEr wird als Beendigungsstatus des Programms an den Aufrufer des Programms (z. B. die Shell) übergeben
  2. BAuf dem Bildschirm wird „3“ angezeigt
  3. CEr wird beim nächsten Programmstart das erste Argument
Antwort und Erläuterung anzeigen

Antwort: A. Er wird als Beendigungsstatus des Programms an den Aufrufer des Programms (z. B. die Shell) übergeben

Der Rückgabewert von main wird vom Startcode an exit übergeben und über das Betriebssystem als Beendigungsstatus an den Elternprozess weitergegeben. Üblicherweise bedeutet 0 Erfolg und ein Wert ungleich 0 irgendeinen Fehler; in der Shell lässt sich der Beendigungsstatus des letzten Befehls mit „echo $?“ ansehen. In Skripten wird anhand dieses Werts entschieden, ob mit der nächsten Verarbeitung fortgefahren oder abgebrochen wird.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Linker, Loader und ausführbare Formate

  1. Was geschieht, wenn der Befehl strip auf eine ausführbare Datei angewendet wird?
  2. Welche Aussage zur Behandlung schwacher Symbole (Weak Symbols) beim Linker ist richtig?
  3. Was ist der Hauptzweck des „Name Mangling“, bei dem der C++-Compiler Symbolnamen durch Anfügen von Informationen wie Argumenttypen an den Funktionsnamen bildet?
  4. Welcher Verwendungszweck der Linux-Funktion dlopen (entspricht LoadLibrary unter Windows) ist am treffendsten?
  5. Wie wird der physische Speicher genutzt, wenn 100 Prozesse dieselbe Shared Library verwenden?

Vergleiche zu diesem Thema