Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

getsubopt - Unteroptionen aus einer Zeichenkette heraustrennen

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

int getsubopt (char **optionp, char * const *tokens, char **valuep);

Beschreibung

getsubopt() trennt Unteroptionen aus einem Schalterargument heraus, welches zuerst durch getopt() verarbeitet wurde. Diese Unteroptionen müssen durch Kommas getrennt sein und dürfen entweder aus einem einzelnen Token oder einem Token-Wert-Paar bestehen, das durch ein Gleichheitszeichen getrennt wird. Da Kommas Unteroptionen in der Optionszeichenkette begrenzen, dürfen sie nicht Teil der Unteroption oder des Wertes einer Unteroption sein. Dementsprechend darf ein Token kein Gleichheitszeichen enthalten, da Token und zugehöriger Wert durch ein Gleichheitszeichen getrennt werden.

getsubopt() erhält die Adresse eines Zeigers auf die Optionszeichenkette, die einen Vektor möglicher Tokens darstellt, und die Adresse eines Zeigers auf eine Wertzeichenkette. Der Index des Tokens, das der Unteroption aus der übergebenen Zeichenkette entspricht, wird zurückgeliefert; wird keine entsprechende Unteroption gefunden, wird -1 zurückgegeben. Wenn die Optionszeichenkette bei *optionp nur eine Unteroption enthält, aktualisiert getsubopt() *optionp so, dass auf das Nullzeichen am Ende der Zeichenkette gezeigt wird; ansonsten wird die Suboption isoliert, indem das trennende Komma durch ein Nullzeichen ersetzt wird, und *optionp zeigt auf den Anfang der nächsten Unteroption. Wird der Unteroption ein Wert zugewiesen, aktualisiert getsubopt() *valuep, so dass auf das erste Zeichen des Wertes gezeigt wird. Ansonsten wird *valuep auf NULL gesetzt.

Der Token-Vektor wird als Folge von Zeigern auf durch Null abgeschlossene Zeichenketten organisiert. Das Ende des Token-Vektors wird durch einen Nullzeiger gekennzeichnet.

getsubopt() liefert dann, wenn valuep nicht NULL ist, die Unteroption zurück, der ein Wert zugewiesen wurde. Das aufrufende Programm kann diese Information verwenden, um zu bestimmen, ob das Vorhandensein oder das Fehlen eines Wertes für diese Unteroption einen Fehler darstellt. Findet getsubopt() keine Unteroption im Vektor tokens, sollte das aufrufende Programm entscheiden, ob es sich hierbei um einen Fehler handelt, oder ob die nichterkannte Option an ein anderes Programm übergeben werden sollte.

Returnwert

Index des passenden Tokens bei Erfolg.

 


bei Erfolg.

 

-1

falls kein passendes Token gefunden wurde.

Hinweise

Während der Verarbeitung der Tokens werden Kommas aus der Optionszeichenkette in Nullzeichen geändert. Leerzeichen in Tokens oder Token-Wert-Paaren müssen vor der Shell durch Anführungszeichen geschützt werden.

Siehe auch

getopt(), stdlib.h.