Was bedeutet die Rückkehr auf Null in der Sprache C?


Beste Antwort

Ich nehme an, Sie sprechen von der Funktion „main ()“?

Unter UNIX / Linux, wo C erfunden wurde (und möglicherweise in anderen Betriebssystemen), gibt es beim Beenden eines Programms einen „Exit-Status“ zurück, anhand dessen das System, das es gestartet hat, feststellen kann, ob es erfolgreich war oder fehlgeschlagen ist.

Ein zurückgegebenes Ergebnis von Null bedeutet „Alles hat gut funktioniert!“ – Ein Ergebnis ungleich Null weist auf eine Art Fehlercode hin.

Dies wird in grafischen Umgebungen, in denen Benutzer Programme über ein Symbol oder etwas anderes starten, nicht häufig (wenn überhaupt) verwendet. In Befehlszeilenanwendungen ist dies jedoch ein Glücksfall.

Nehmen Sie zum Beispiel das Tool „make“, mit dem komplizierte Anwendungen kompiliert und verknüpft werden. Die verschiedenen Compiler und Linker geben eine „Rückgabe 0“ aus, wenn das Programm, an dem sie arbeiten, korrekt kompiliert wurde – oder „Rückgabe 1“, wenn es nicht kompiliert wurde.

Das Programm „make“ untersucht die Rückgabe Status jedes Programms, das ausgeführt wird – und bricht den Build ab, wenn eines von ihnen etwas anderes als Null zurückgibt.

Dies ist eine sehr praktische Sache.

Ich habe also ein Programm, das ich geschrieben habe macht einige Bildverarbeitung. Wenn die gelesene Datei beschädigt ist, wird eine „Rückgabe 2“ ausgeführt. Wenn die Datei nicht vorhanden ist, wird eine „Rückgabe 1“ ausgeführt. Nur wenn alles in Ordnung war, wird „0“ zurückgegeben.

Wenn ich nun ein kompliziertes Programm zum Erstellen habe, in dessen Release-Paket Images integriert sind, kann mein Makefile das Bildverarbeitungsprogramm auslösen. Wenn es aus irgendeinem Grund fehlschlägt, wird der Make-Lauf unterbrochen, sodass ich kann das Problem beheben.

Alle UNIX / Linux-Befehlszeilentools geben einen Wert ungleich Null für einen Fehler zurück. Selbst wenn Sie nur das Standardprogramm „rm“ zum Löschen einer Datei verwenden, wird a ausgeführt „Return 0“, wenn die Datei erfolgreich gelöscht wurde, oder „return 1“, wenn sie aus irgendeinem Grund nicht gelöscht werden konnte.

Einige Programme geben unterschiedliche Codes zurück, je nachdem, was genau schief gelaufen ist – aber das ist fair ungewöhnlich.

Beachten Sie auch, dass beim Aufrufen der Funktion „exit (0)“ der Parameter „0“ auch der Rückgabestatus ist. Dies gilt auch für „exit (0)“, wenn die Dinge gut funktionieren und „ exit (1) ”, wenn dies nicht der Fall ist.

Antwort

Dort a An vielen verschiedenen Stellen können Sie eine return 0 -Anweisung in C ausführen, sodass diese Frage eine Vielzahl von Antworten erhalten wird.

Lassen Sie Ich beantworte einen bestimmten Fall:

int main(int argc, char *argv[])

{

...

return 0;

}

Warum geben wir 0 von main zurück?

In der * IX-Familie von Betriebssystemen, die zuerst durch UNIX und dann durch Linux veranschaulicht wird, existiert ein Programm mit einem einzigen ganzzahligen Exit-Code. Wird nominell verwendet, um Erfolg oder Misserfolg anzuzeigen.

In den meisten Fällen zeigt ein Wert von 0 Erfolg an, und ein Wert ungleich Null ist ein Fehler, wobei der Wert normalerweise bestimmte Fehlerinformationen angibt.

C- und C ++ – Programme, die auf * IX-Systemen ausgeführt werden, stellen diesen Exit-Code entweder durch einen ganzzahligen Wert bereit, der an die Standardbibliothek übergeben wird. exit () -Funktion oder die Ganzzahl zurückgegeben von main () .

In diesem Fall geben wir 0 von main zurück, um * IX-Systemen anzuzeigen, dass das Programm mit einem Erfolgscode beendet wurde.

-Mark

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.