Wat betekent return-to-zero in C-taal?


Beste antwoord

Ik neem aan dat je het hebt over de functie “main ()”?

In UNIX / Linux waar C is uitgevonden (en mogelijk in andere besturingssystemen) wanneer een programma wordt afgesloten, geeft het een “exitstatus” terug die het systeem dat het heeft gestart kan gebruiken om te zien of het is gelukt of niet.

Een geretourneerd resultaat van nul betekent “Alles werkte goed!” – een resultaat dat niet gelijk is aan nul duidt op een soort foutcode.

Dit wordt niet veel (of helemaal niet) gebruikt in grafische omgevingen waar mensen programmas starten vanaf een pictogram of zoiets. Maar in opdrachtregelapplicaties is het een uitkomst.

Neem bijvoorbeeld de “make” -tool – die wordt gebruikt voor het compileren en koppelen van gecompliceerde applicaties. De verschillende compilers en linkers geven een “return 0” als het programma waaraan ze werken correct gecompileerd is – of ze “retourneren 1” als het niet gecompileerd is.

Het “make” -programma onderzoekt de return status van elk programma dat het uitvoert – en breekt het bouwen af ​​als een van hen iets anders dan nul retourneert.

Dit is echt handig.

Dus ik heb een programma dat ik heb geschreven doet wat beeldverwerking. Als het bestand dat het leest corrupt is, doet het een “return 2” – als het bestand niet bestaat, doet het een “return 1” en alleen als alles goed werkte doet het een “return 0”.

Nu – als ik een gecompliceerd programma moet bouwen met ingebouwde images in het release-pakket – kan mijn Makefile het beeldverwerkingsprogramma activeren – en als het om de een of andere reden mislukt – zal het de make-run verbreken, dus ik kan het repareren.

Alle UNIX / Linux-opdrachtregelprogrammas retourneren een niet-nulwaarde voor mislukking – dus zelfs als u alleen het standaard “rm” -programma gebruikt om een ​​bestand te verwijderen, doet het een “Return 0” als het bestand succesvol is verwijderd of een “return 1” als het om wat voor reden dan ook niet kan worden verwijderd.

Een paar programmas retourneren verschillende codes, afhankelijk van wat er precies is misgegaan – maar dit is redelijk ongebruikelijk.

Merk ook op dat wanneer u de functie “exit (0)” aanroept, de parameter “0” ook de retourstatus is … dus doe “exit (0)” wanneer alles goed werkt en ” exit (1) ”wanneer ze dat niet zijn.

Antwoord

Er is een Op veel verschillende plaatsen zou je een return 0 statement in C kunnen uitvoeren, dus deze vraag zal een verscheidenheid aan antwoorden krijgen.

Laten ik beantwoord een specifiek geval:

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

{

...

return 0;

}

Waarom retourneren we 0 van main?

In de * IX-familie van besturingssystemen, geïllustreerd door eerst UNIX en dan Linux, bestaat een programma met een enkele integer exitcode, nominaal gebruikt om succes of mislukking aan te geven.

In de meeste gevallen duidt een waarde van 0 op succes, en een waarde die niet nul is, is een mislukking, waarbij de waarde meestal een specifieke foutinformatie aangeeft.

C- en C ++ -programmas die op * IX-systemen worden uitgevoerd, leveren deze afsluitcode door ofwel een geheel getal dat wordt doorgegeven aan de standaardbibliotheek exit () -functie, of het gehele getal geretourneerd van main () .

Dus in dit geval retourneren we 0 van main om aan * IX systemen aan te geven dat het programma is beëindigd met een succescode.

-Mark

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *