Wenn man an der Eingabeaufforderung - dem DOS Prompt ist gemeint oder an der Linux Shell - folgendes eingibt:
bastet_prg_maxipraxihaxi parameter1 2 3 4 parameter5
Dieses komische Ding (bastet_prg_maxipraxihaxi) ist ein Programm ! (sowas wie Excel.exe)
sprich bastet_prg_maxipraxihaxi.exe
Du sollst also nicht
> dir c:\
eingeben
sondern
> bastet_prg_maxipraxihaxi parameter1 2 3 4 parameter5
im DOS Modus = an der Eingabeaufforderung
wenn Du nur
> bastet_prg_maxipraxihaxi
eingibst
so steht im C Programm in der Variablen argc 1 und in der Variablen argv 4 Millionen und irgendwas (eine Adresse also), unter *argv ist die gleiche Adresse + 4 * Anzahl der Argumente zu finden und unter **argv findet sich schließlich ein 'b' (Beginn des Programmnamens bastet_prg_maxipraxihaxi), unter *(argv+1) ist die Adresse + 4 * Anzahl der Argumente + Länge des Programmpfades zu finden, und unter **(argv+1) findet sich das Zeichen 'p' (für parameter1)
argv[0] <-- "bastet_prg_maxipraxihaxi"
argv[1] <-- NULL
sonst
argv[0] <-- "bastet_prg_maxipraxihaxi"
argv[1] <-- "parameter1"
argv[2] <-- "2"
argv[3] <-- "3"
argv[4] <-- "4"
argv[5] <-- "parameter5"
für argv[0] kann man auch *argv schreiben
für argv[1] *(argv+1) usw.
Alles klar ?
Code:
#include <stdio.h>
int main(int argc, char **argv)
{
for(int i=1; i<=argc; i++)
{
printf("Argument Nummer %d = >%s<\n",i,*argv++);
}
system("PAUSE");
return 0;
}
mfg Kikakater