Kommandozeilenparameter: Funktion variable Parameter

13/04/2013 - 18:44 von Robert Hartmann | Report spam
Hallo zusammen,

Ich sehe gerade den Wald vor Bàumen nicht mehr.

Ich möchte partiell die Kommandozeilenparameter, d.h. Inhalt
von char *argv[], an eine Funktion weiterleiten, wobei die
Maximalanzahl der zu übergebenen Parameter nicht vorher feststeht.

Die Implementierung für die mit ???? markierten Stellen (s.u.)
sind mir momentan nicht klar.

Sollte ich besser mit char** arbeiten, oder
doch irgendwie mit va_list, va_start, va_arg, va_end?

Beste Grüße,
Robert


***********************

Beispielaufrufe in der Kommandozeile:

.\test.exe bla 1 2 blub 3456 "ghhh fgfg" gjkjk

.\test.exe blun nnn u 89 "zz h" kk 9

************************



void tuwas( ???? ){
/* egal was */
}


int main(int argc, char* argv[]){

if (argc>=3){
/*
Übergabe aller Parameter ab argv[2]
bis argv[argc-1] an die Funktion tuwas
*/
tuwas( ???? );
}

return 0;

}

************************
 

Lesen sie die antworten

#1 Helmut Schellong
13/04/2013 - 20:50 | Warnen spam
Robert Hartmann wrote:
int main(int argc, char* argv[]){

if (argc>=3){
/*
Übergabe aller Parameter ab argv[2]
bis argv[argc-1] an die Funktion tuwas
*/
tuwas( ???? );




tuwas(&argv[2]); // (typ) ist char**
tuwas(argv+2); // geht auch

//argv[argc] == NULL




Mit freundlichen Grüßen
Helmut Schellong
www.schellong.de www.schellong.com www.schellong.biz
http://www.schellong.de/c.htm

Ähnliche fragen