next up previous contents
Nästa: 14.4 Att avsluta C-program Upp: 14. De första programmen Förra: 14.2 Variabler

14.3 Argument

Vi ändrar programmet ''Hej, världen'' så att det skriver ut sitt första argument i stället för ordet ''världen'':

#include <stdio.h>

int main(int argc,char *argv[])
{
  printf("Hej, %s!\n",argv[1]);
return 0;
}

Vi antar att programmet ovan är sparat i en fil med namnet hej.c.$ gcc -o hej hej.c
$ hej Göran
Hej, Göran!
$
I C-programmen är argc en heltalsvariabel vars värde är 1 plus antalet argument programmet anropades med. (Om det tex fanns två argument, så får argc värdet 3. Ja, C är ett besynnerligt språk.) Argumenten lagras som textsträngar i variabler med namnen argv[1], argv[2] osv. När man vill att printf ska skriva ut en textsträng, så gör man precis som då ett heltal ska skrivas ut bortsett från att det ska stå %s i stället för %d. Det namn programmet anropades under anges som argv[0]. (I Bash heter argumenten som bekant $1, $2 osv. Likheten är påtaglig, eller hur?)

Här är ett program, argument, som skriver ut antalet argument:

#include <stdio.h>

int main(int argc,char *argv[])
{
  printf("Totalt %d argument.\n",argc-1);
return 0;
}

I printf-instruktionen ovan står %d för talet argc-1, vilket är antalet argument. Låt oss kompilera och prova programmet:$ gcc -o argument argument.c
$ argument
Totalt 0 argument.
$ argument 2 3 6 3
Totalt 4 argument.
$ argument hej och hå!
Totalt 3 argument.
$ argument 'Hej och hå!'
Totalt 1 argument.
$

Man kan naturligtvis använda make för att få hjälp med kompileringen. En Makefile för vårt program argument kan se ut så här:

all: argument

.PHONY: all clean

argument: argument.c
        gcc -o argument argument.c

clean:
        rm -f argument argument.c~
Programmet kompileras då helt enkelt med kommandot make, och för att städa upp skriver man make clean.


next up previous contents
Nästa: 14.4 Att avsluta C-program Upp: 14. De första programmen Förra: 14.2 Variabler
Goran Andersson
1999-03-08