Ich versuche, einen Argumentparameter mit dem Optarg-Parameter von getopt() zu verarbeiten, aber es bleibt null. Könnte das etwas mit dem c99 Standard zu tun haben? Ich weiß, dass ich die Zeichenfolge tatsächlich von optarg kopieren muss, aber sie wird nicht einmal gesetzt.optarg von getopt() ist immer null
0
A
Antwort
0
optarg ist etwas, das durch einen Aufruf von getopt() initialisiert wird, Sie überschreiben es, indem Sie es selbst initialisieren. Entfernen Sie die Zeile "char * optarg;" und du solltest gut gehen.
entfernen 'char * optarg;' – BLUEPIXY
wow. Danke! @BLUEPIXY – DAnsermino
Sie sollten die Manpage für 'getopt()' lesen, die diese kritische Aussage enthält: 'Wenn es keine weiteren Optionszeichen gibt, gibt getopt() -1 zurück. Dann ist optind der Index in argv des ersten argv-Elements, das keine Option ist. – user3629249