getopt_long verständnissfrage
-
Hier ein Auszug aus der manpage von getopt_long den ich nicht ganz verstehe.
flag
gibt an wie Ergebnisse zurückgegeben werden für eine lange Option. Wenn flag NULL ist, dann gibt getopt_long() val zurück. (Zum Beispiel kann das aufrufende Programm val auf das Zeichen der äquivalenten Kurzoption setzen.)Soweit is mir das klar jetzt kommt der Teil den ich net raff.
Anderenfalls gibt getopt_long() 0 zurück, und flag zeigt auf eine Variable, die auf val gesetzt wird, wenn die Option gefunden wird, und die unverändert gelassen wird, wenn die Option nicht gefunden wird.
wie darf ich das verstehen bzw. anwenden?
nachdem flag ein zeiger ist hab ich gedacht ich muss eine Addresse übergeben.const char test='t'; static const struct option long_options[] = { { "AAA", no_argument, 0, 'a' }, { "BBB", no_argument, 0, 'b' }, { "CCC", required_argument, 0, 'c' }, { "DDD", no_argument, 0, 'd' }, { "EEE", no_argument, 0, 'e' }, { "FFF", required_argument, &test, 0 }, 0 };
aber dann krieg ich die Fehlermeldung :
Initialisierungselemt ist nicht konstant
Kann mir das mal bitte einer erklären?
Ich hab auch schon gegoogelt aber ich find kein Beispiel wie ich das anzuwenden hab.MFG eiskalt
-
so ich hab zwar immer noch keine Lösung dafür aber wieder neue Probleme
int getopt_long(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex);
wofür brauch ich das int *longindex?
aus der manpage werd ich net wirklich schlau.MFG eiskalt
-
Hat sich erledigt
thx