Ett C-program avslutas
av instruktionen return tal.
Talet tal är programmets slutstatus,
som markerar ifall körningen var lyckad eller inte.
Slutstatus 0 anger att körningen var lyckad,
slutstatus 1 till 255 anger olika typer av fel.
Programmet argument ovan lämnar slutstatus 0,
något vi kan kontrollera med hjälp av parametern ? i Bash:$ argument 'Detta är ett test!'
Totalt 1 argument.
$ echo $?
0
$Värdet av parametern ? var alltså 0, det tal
vi angav i return-instruktionen. Programmets slutstatus
kan användas av kommandotolken tex för tester av följande slag:$ if argument hej ; then echo Lyckad ; else echo Misslyckad ; fi
Totalt 1 argument.
Lyckad
$Villkoret i if-satsen ansågs här vara
uppfyllt eftersom körningen argument hej gav
lyckad slutstatus.
Ändra nu programmet till följande:
#include <stdio.h>
int main(int argc,char *argv[])
{
printf("Totalt %d argument.\n",argc-1);
return 7;
}
Vi ger denna version av programmet namnet slutstatus
och provar det:$ slutstatus Ett nytt test...
Totalt 3 argument.
$ echo $?
7
$ if slutstatus hej ; then echo Lyckad ; else echo Misslyckad ; fi
Totalt 1 argument.
Misslyckad
$Vilkoret i if-satsen var inte uppfyllt den här gången.
I kapitel 16 ska vi berätta om hur man kan definiera sina egna funktioner i C. Om man använder return inuti en sådan funktion, så avslutas inte hela programmet utan bara funktionen. Ett annat sätt att avsluta C-program, som fungerar även inuti egendefinierade funktioner, är att anropa funktionen exit. Som argument till exit ska man ange önskad slutstatus. Program som använder exit ska läsa in deklarationsfilen stdlib.h, för det är den filen som anger för kompilatorn vilken syntax som gäller för exit. I stdlib.h deklareras också EXIT_FAILURE som en synonym för 1 (misslyckad slutstatus) samt EXIT_SUCCESS som en synonym för 0 (lyckad slutstatus). Så här kan man använda exit:
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
printf("Totalt %d argument.\n",argc-1);
exit(EXIT_FAILURE);
}
Vi ger programmet namnet slutstatus2 och provar det:$ slutstatus2
Totalt 0 argument.
$ echo $?
1
$