N
Nerthus
Jungspund
Hiho,
ich bastel mir gerade ein kleines tool zusammen und benutze zur Auswertung der
Kommandozeilenargumente die getopt()-Funktion. Hier der entsprechende Ausschnitt:
Das Problem liegt nun darin, daß getopt() bei fehlendem Argument für die Option
-f: , nicht wie in der dokumentation dazu steht ein ':' zurückgibt sondern ein '?' ?!?
Es wird also nicht zwischen einem unbekannten Operationszeichen und einem
fehlenden Parameter zu einer Option unterschieden. Warum nicht?
bye
ich bastel mir gerade ein kleines tool zusammen und benutze zur Auswertung der
Kommandozeilenargumente die getopt()-Funktion. Hier der entsprechende Ausschnitt:
Code:
while((opt = getopt(argc, argv, "-dehf:")) != EOF) {
switch(tolower(opt))
{
case 'h': print_help(OPTIONS, NULL);
exit(EXIT_FAILURE);
break;
case 'd': decode = true;
break;
case 'e': encode = true;
break;
case 'f': strncpy(file, optarg, F_SIZE);
break;
case ':': print_help(MISSING_FN, NULL);
exit(EXIT_FAILURE);
break;
case '?': sprintf(param, "-%c", optopt);
print_help(INVALID_OPT, param);
print_help(OPTIONS, NULL);
exit(EXIT_FAILURE);
break;
}
Das Problem liegt nun darin, daß getopt() bei fehlendem Argument für die Option
-f: , nicht wie in der dokumentation dazu steht ein ':' zurückgibt sondern ein '?' ?!?
Es wird also nicht zwischen einem unbekannten Operationszeichen und einem
fehlenden Parameter zu einer Option unterschieden. Warum nicht?
bye
Zuletzt bearbeitet: