getopt() mit 2 Argumenten hinter Optionsschalter
-
wenn z.B. die Optionsliste von getopt() so aussieht:
getopt(argc, argv, "d:l:")
heißt das ja, dass wegen der Doppelpunkte hinter den Optionen -d und -l ein Argument erwartet wird, z.B.
%prog -d arg
Das arg bekommt man dann mit "optarg".
Wie kann man das aber anstellen, wenn man 2 Argumente hinter "-d" haben will?
z.B.
%prog -d arg0 arg1Wie komme ich dann an das arg1 ?
-
Wenn keiner was besseres hat, würde ich es mit
-d "arg arg2"
machen und dann selber den ganzen String von optarg parsen und in Einzelstrings zerteilen.
-
man: getopt(3) - nach dem Aufruf enthält 'optind' den Index des nächsten Kommando-Arguments für die Weiterarbeit - das wäre in deinem Fall der Index von "arg1":
switch(ch) { case 'd': printf("d option mit %s,%s\n",optarg,argv[optind]; ++optind;//den zweiten Parameter überspringen break; ... }
(so würde ich es machen - eventuell mit Fehlerüberprüfung, ob dort wirklich ein zweites Argument kam)
-
ja, das ist gut
Danke!