Einzelnen Beitrag anzeigen
Alt 26.11.2003, 11:14   #38
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

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
kikakater ist offline   Mit Zitat antworten