next up previous contents
Nästa: 14.5 Operatorer Upp: 14. De första programmen Förra: 14.3 Argument

14.4 Att avsluta C-program

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
$


next up previous contents
Nästa: 14.5 Operatorer Upp: 14. De första programmen Förra: 14.3 Argument
Goran Andersson
1999-03-08