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.