nl::ArgParser

Zusammenfassung

Aufzählungen

OptionArgumentType enum
Definiert die Argumentanforderungen für eine Befehlszeilenoption.

Typedefs

NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[]) typedef
bool(*
Funktion, die aufgerufen werden kann, um alle verbleibenden Befehlszeilenargumente zu verarbeiten, die keine Optionen sind.
OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) typedef
bool(*
Eine Funktion, die aufgerufen werden kann, um eine Reihe von Befehlszeilenoptionen zu verarbeiten.

Variablen

PrintArgError = DefaultPrintArgError)(const char *msg,...)
void(*
Zeiger auf die Funktion, die zum Drucken von Fehlern verwendet wird, die beim Parsen von Argumenten auftreten.
gActiveOptionSets = NULL
Die Liste der OptionSets, die an den derzeit aktiven ParseArgs()-Aufruf übergeben wird.

Funktionen

CountAllOptions(OptionSet *optSets[])
size_t
CountAllOptions(OptionSet **optSets)
size_t
CountOptionSets(OptionSet *optSets[])
size_t
CountOptionSets(OptionSet **optSets)
size_t
DefaultPrintArgError(const char *msg, ...)
void
Gibt eine Fehlermeldung im Zusammenhang mit der Argumentanalyse aus.
FindOptionById(OptionSet **optSets, int optId, OptionSet *& optSet, OptionDef *& optDef)
void
FindOptionByIndex(OptionSet **optSets, int optIndex, OptionSet *& optSet, OptionDef *& optDef)
void
GetNextArg(char *& parsePoint)
bool
IsShortOptionChar(int ch)
bool
MakeLongOptions(OptionSet **optSets)
struct option *
MakeShortOptions(OptionSet **optSets)
char *
MakeUniqueHelpGroupNamesList(OptionSet *optSets[])
const char **
ParseArgs(const char *progName, int argc, char *argv[], OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler, bool ignoreUnknown)
bool
Parsen Sie eine Reihe von Befehlszeilenargumenten und rufen Sie Verarbeitungsfunktionen zur Verarbeitung der einzelnen Optionen und Nicht-Options-Argumente auf.
ParseArgs(const char *progName, int argc, char *argv[], OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler)
bool
ParseArgs(const char *progName, int argc, char *argv[], OptionSet *optSets[])
bool
ParseArgsFromEnvVar(const char *progName, const char *varName, OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler, bool ignoreUnknown)
bool
Parsen Sie eine Reihe von Argumenten aus einer benannten Umgebungsvariablen.
ParseArgsFromEnvVar(const char *progName, const char *varName, OptionSet *optSets[])
bool
ParseArgsFromEnvVar(const char *progName, const char *varName, OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler)
bool
ParseArgsFromString(const char *progName, const char *argStr, OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler, bool ignoreUnknown)
bool
Parst eine Reihe von Argumenten aus einem bestimmten String.
ParseArgsFromString(const char *progName, const char *argStr, OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler)
bool
ParseArgsFromString(const char *progName, const char *argStr, OptionSet *optSets[])
bool
ParseBoolean(const char *str, bool & output)
bool
Parsen Sie einen String als booleschen Wert.
ParseFabricId(const char *str, uint64_t & fabricId, bool allowReserved)
bool
Parst eine Weave-Fabric-ID in Textform.
ParseHexString(const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen)
bool
Parst einen String von Byte in Hexadezimalform.
ParseIPAddress(const char *str, IPAddress & output)
bool
Parsen Sie eine IP-Adresse in Textform.
ParseInt(const char *str, uint64_t & output, int base)
bool
Parsen und versuchen, einen String in eine vorzeichenlose 64-Bit-Ganzzahl zu konvertieren, wobei die auf dem Basisparameter entsprechende Interpretation angewendet wird.
ParseInt(const char *str, uint32_t & output, int base)
bool
Parsen und versuchen, einen String in eine vorzeichenlose 32-Bit-Ganzzahl zu konvertieren, wobei die auf dem Basisparameter entsprechende Interpretation angewendet wird.
ParseInt(const char *str, int32_t & output, int base)
bool
Parsen und versuchen, einen String in eine 32-Bit-Ganzzahl mit Vorzeichen zu konvertieren, wobei die entsprechende Interpretation basierend auf dem Basisparameter angewendet wird.
ParseInt(const char *str, uint64_t & output)
bool
Parsen und versuchen, einen String, der als Dezimalwert interpretiert wird, in eine vorzeichenlose 64-Bit-Ganzzahl umzuwandeln, wobei die auf dem Basisparameter entsprechende Interpretation angewendet wird.
ParseInt(const char *str, uint32_t & output)
bool
Parsen und versuchen, einen String, der als Dezimalwert interpretiert wird, in eine vorzeichenlose 32-Bit-Ganzzahl umzuwandeln und die entsprechende Interpretation basierend auf dem Basisparameter anzuwenden.
ParseInt(const char *str, int32_t & output)
bool
Parsen und versuchen, einen String, der als Dezimalwert interpretiert wird, in eine vorzeichenbehaftete 32-Bit-Ganzzahl umzuwandeln und die entsprechende Interpretation basierend auf dem Basisparameter anzuwenden.
ParseInt(const char *str, uint16_t & output)
bool
Parsen und versuchen, einen String, der als Dezimalwert interpretiert wird, in eine vorzeichenlose 16-Bit-Ganzzahl umzuwandeln, wobei die auf dem Basisparameter entsprechende Interpretation angewendet wird.
ParseInt(const char *str, int16_t & output)
bool
Parsen Sie einen String, der als Dezimalwert interpretiert wird, und wandeln Sie ihn in eine vorzeichenbehaftete 16-Bit-Ganzzahl um. Dabei wird die entsprechende Interpretation basierend auf dem Basisparameter angewendet.
ParseInt(const char *str, uint8_t & output)
bool
Parsen und versuchen, einen String, der als Dezimalwert interpretiert wird, in eine vorzeichenlose 8-Bit-Ganzzahl umzuwandeln und die entsprechende Interpretation basierend auf dem Basisparameter anzuwenden.
ParseNodeId(const char *str, uint64_t & nodeId)
bool
Parst eine Weave-Knoten-ID in Textform.
ParseSubnetId(const char *str, uint16_t & subnetId)
bool
Parsen und versuchen, einen String in eine vorzeichenlose 16-Bit-Subnetz-ID umzuwandeln, wobei der String als hexadezimal interpretiert wird.
PrintOptionHelp(OptionSet *optSets[], FILE *s)
void
Gibt den Hilfetext für eine angegebene Liste von Optionen an einen Stream aus.
PutStringWithBlankLine(FILE *s, const char *str)
void
PutStringWithNewLine(FILE *s, const char *str)
void
SplitArgs(char *argStr, char **& argList, char *initialArg)
int32_t

Kurse

nl::ArgParser::HelpOptions

Häufiges OptionSet für den Umgang mit Informationsoptionen (Hilfe, Version).

nl::ArgParser::OptionSetBase

Ein OptionSet, wobei der Handler eine virtuelle Funktion ist.

Strukturen

nl::ArgParser::OptionDef

Definiert eine Befehlszeilenoption.

nl::ArgParser::OptionSet

Definiert eine Gruppe logisch zusammenhängender und wiederverwendbarer Befehlszeilenoptionen.

Aufzählungen

OptionArgumentType

 OptionArgumentType

Definiert die Argumentanforderungen für eine Befehlszeilenoption.

Typedefs

NonOptionArgHandlerFunct

bool(* NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[])

Funktion, die aufgerufen werden kann, um alle verbleibenden Befehlszeilenargumente zu verarbeiten, die keine Optionen sind.

OptionHandlerFunct

bool(* OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg)

Eine Funktion, die aufgerufen werden kann, um eine Reihe von Befehlszeilenoptionen zu verarbeiten.

Variablen

PrintArgError

void(* PrintArgError)(const char *msg,...) = DefaultPrintArgError

Zeiger auf die Funktion, die zum Drucken von Fehlern verwendet wird, die beim Parsen von Argumenten auftreten.

Anwendungen sollten „PrintArgError()“ aufrufen, um Fehler in ihren Optionen und Nicht-Options-Argumentverarbeitungsfunktionen zu melden, anstatt direkt in stdout/stderr zu drucken.

Die Standardeinstellung ist ein Zeiger auf die Funktion DefaultPrintArgError().

gActiveOptionSets

OptionSet ** gActiveOptionSets = NULL

Die Liste der OptionSets, die an den derzeit aktiven ParseArgs()-Aufruf übergeben wird.

Dieser Wert ist NULL, wenn kein Aufruf von ParseArgs() erfolgt.

Funktionen

CountAllOptions

size_t CountAllOptions(
  OptionSet *optSets[]
)

CountAllOptions

size_t CountAllOptions(
  OptionSet **optSets
)

CountOptionSets

size_t CountOptionSets(
  OptionSet *optSets[]
)

CountOptionSets

size_t CountOptionSets(
  OptionSet **optSets
)

DefaultPrintArgError

void DefaultPrintArgError(
  const char *msg,
  ...
)

Gibt eine Fehlermeldung im Zusammenhang mit der Argumentanalyse aus.

Standardfunktion zum Drucken von Fehlermeldungen, die beim Parsen von Argumenten auftreten.

Details
Parameter
[in] msg
Die zu druckende Nachricht.

Anwendungen sollten über den Funktionszeiger PrintArgError aufrufen, anstatt diese Funktion direkt aufzurufen.

FindOptionById

void FindOptionById(
  OptionSet **optSets,
  int optId,
  OptionSet *& optSet,
  OptionDef *& optDef
)

FindOptionByIndex

void FindOptionByIndex(
  OptionSet **optSets,
  int optIndex,
  OptionSet *& optSet,
  OptionDef *& optDef
)

GetNextArg

bool GetNextArg(
  char *& parsePoint
)

IsShortOptionChar

bool IsShortOptionChar(
  int ch
)

MakeLongOptions

struct option * MakeLongOptions(
  OptionSet **optSets
)

MakeShortOptions

char * MakeShortOptions(
  OptionSet **optSets
)

MakeUniqueHelpGroupNamesList

const char ** MakeUniqueHelpGroupNamesList(
  OptionSet *optSets[]
)

ParseArgs

bool ParseArgs(
  const char *progName,
  int argc,
  char *argv[],
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler,
  bool ignoreUnknown
)

Parsen Sie eine Reihe von Befehlszeilenargumenten und rufen Sie Verarbeitungsfunktionen zur Verarbeitung der einzelnen Optionen und Nicht-Options-Argumente auf.

ParseArgs() nimmt eine Liste von Argumenten (argv) und parst sie gemäß einem Satz von bereitgestellten Optionsdefinitionen. Die Funktion unterstützt die Optionen long (opt) und kurz (-o) und implementiert dieselbe Optionssyntax wie die GNU-Funktion getopt_long(3).

Details
Parameter
[in] progName
Der Name des Programms oder des Kontexts, in dem die Argumente geparst werden. Dieser String wird als Präfix für Fehlermeldungen und Warnungen verwendet.
[in] argc
Die Anzahl der zu analysierenden Argumente plus 1.
[in] argv
Ein Array von Argumentstrings, die geparst werden sollen. Die Array-Länge muss 1 größer als der für argc angegebene Wert sein und argv[argc] muss auf NULL gesetzt sein. Das Parsen von Argumenten beginnt mit dem Array-Element second (argv[1]); Element 0 wird ignoriert.
[in] optSets
Eine Liste mit Verweisen auf OptionSet-Strukturen, die die rechtlichen Optionen definieren. Die bereitgestellte Liste muss mit NULL enden.
[in] nonOptArgHandler
Ein Zeiger auf eine Funktion, die aufgerufen wird, sobald das Parsen von Optionen mit allen verbleibenden Nicht-Options-Argumenten abgeschlossen ist . Die Funktion wird unabhängig davon aufgerufen, ob Argumente vorhanden sind. Wenn NULL übergeben wird, meldet ParseArgs() einen Fehler, falls Nicht-Optionsargumente vorhanden sind.
[in] ignoreUnknown
Wenn „true“ festgelegt ist, werden alle nicht erkannten Optionen ohne Meldung ignoriert.
Rückgabe
true, wenn alle Optionen und Nicht-Optionsargumente erfolgreich geparst wurden; false, wenn eine Option nicht erkannt wurde oder eine der Handler-Funktionen fehlgeschlagen ist (d.h. "false" zurückgegeben).

Optionsdefinitionen werden als Array von OptionSet-Strukturen (optSets) an ParseArgs() übergeben. Jedes OptionSet enthält ein Array von Optionsdefinitionen und eine Handler-Funktion. ParseArgs() verarbeitet Optionsargumente in der angegebenen Reihenfolge und ruft für jede erkannte Option die entsprechende Handler-Funktion auf. Nachdem alle Optionen geparst wurden, wird einmal eine separate Nicht-Options-Handler-Funktion (nonOptArgHandler) aufgerufen, um alle verbleibenden Argumente zu verarbeiten.

OPTIONEN

Ein OptionSet enthält eine Reihe von Optionsdefinitionen sowie einen Zeiger auf eine Handler-Funktion, die aufgerufen wird, wenn eine der verknüpften Optionen erkannt wird. Optionssätze enthalten auch Hilfetext zur Syntax und zum Zweck der einzelnen Optionen (siehe OPTION-HILFE unten). Mit Optionssätzen können wiederverwendbare Sammlungen verwandter Optionen erstellt werden. Dies vereinfacht die Verwaltung mehrerer Anwendungen, die ähnliche Optionen akzeptieren (z.B. Testanwendungen).

Es gibt zwei Muster für die Definition von OptionSetsone. Sie können entweder eine Instanz der OptionSet-Struktur selbst initialisieren, z. B. als statische globale, oder eine Unterklasse von OptionSetBase und einen Konstruktor bereitstellen. Letzteres verwendet eine reine virtuelle HandleOption()-Funktion, um die Optionenverarbeitung an die Unterklasse zu delegieren.

Listen von OptionSets werden als NULL-terminiertes Array von Zeigern an die Funktion ParseArgs() übergeben. E.g.:

static OptionSet gToolOptions =
{
    HandleOption,        // handler function
    gToolOptionDefs,  // array of option definitions
    "GENERAL OPTIONS",   // help group
    gToolOptionHelp   // option help text
};

static OptionSet *gOptionSets[] =
{
    &gToolOptions,
    &gNetworkOptions,
    &gTestingOptions,
    &gHelpOptions,
    NULL
};

int main(int argc, char *argv[])
{
    if (!ParseArgs("test-app", argc, argv, gOptionSets))
    {
        ...
    }
}

OPTIONENDEFINITIONEN

Optionen werden mithilfe der OptionDef-Struktur definiert. Optionsdefinitionen sind als Array von OptionDef-Elementen organisiert, wobei jedes Element Folgendes enthält: den Namen der Option, eine Ganzzahl-ID zur Identifizierung der Option und ob die Option ein Argument erwartet oder zulässt. Das Ende des Optionsarrays wird durch ein NULL-Name-Feld signalisiert. E.g.:

enum
{
    kOpt_Listen = 1000,
    kOpt_Length,
    kOpt_Count,
};

static OptionDef gToolOptionDefs[] =
{
    // NAME         REQUIRES/ALLOWS ARG?  ID/SHORT OPTION CHAR
    // ============================================================
    {  "listen",    kNoArgument,          kOpt_Listen     },
    {  "length",    kArgumentRequired,    kOpt_Length     },
    {  "count",     kArgumentRequired,    kOpt_Count      },
    {  "num",       kArgumentRequired,    kOpt_Count      }, // alias for --count
    {  "debug",     kArgumentOptional,    'd'             },
    {  "help",      kNoArgument,          'h'             },
    {  NULL }
};

OPTION-IDs

Mit Options-IDs werden Optionen für den Code identifiziert, der sie verarbeitet (Funktion OptionHandler). Options-IDs beziehen sich auf das OptionSet, in dem sie erscheinen, und können daher in verschiedenen OptionSets wiederverwendet werden (siehe KURZOPTIONEN unten). Üblicherweise beginnen Nummerierungsoptionen bei 1000, es kann jedoch auch eine beliebige Zahl > 128 verwendet werden. Alias-Optionen können mithilfe derselben Options-ID mit unterschiedlichen Optionsnamen erstellt werden.

KURZ OPTIONEN

Im Gegensatz zu getopt_long(3) verwendet ParseArgs() keinen separaten String, der die Liste kurzer Optionszeichen angibt. Vielmehr kann jede Option, deren ID-Wert in den Bereich der grafischen ASCII-Zeichen fällt, dieses Zeichen als kurze Option verwendet werden.

ParseArgs() erfordert, dass kurze Optionszeichen in allen OptionSets eindeutig sind. Aus diesem Grund wird von der Verwendung kurzer Optionen für OptionsSets abgeraten, die programmübergreifend genutzt werden, da die Gefahr von Kollisionen sehr hoch ist. Kurze Optionszeichen können in einem einzelnen OptionSet wiederverwendet werden, um das Erstellen langer Optionsnamen mit Aliasnamen zu ermöglichen.

HILFE ZU OPTIONEN

Jedes OptionSet enthält einen OptionHelp-String, der den Zweck und die Syntax der zugehörigen Optionen beschreibt. Diese Strings werden von der PrintOptionHelp()-Funktion verwendet, um Nutzungsinformationen zu Optionen zu generieren.

Konventionsgemäß bestehen Optionshilfestrings aus einem Syntaxbeispiel, gefolgt von einer Textbeschreibung der Option. Wenn die Option eine Kurzversion oder einen Aliasnamen hat, wird sie vor dem primären Langnamen angegeben. Aus Konsistenzgründen werden Syntaxzeilen mit 2 Leerzeichen eingerückt, Textzeilen mit 7 Leerzeichen. Nach jeder Optionsbeschreibung, einschließlich der letzten, folgt eine einzelne Leerzeile.

E.g.:

static const char *const gToolOptionHelp =
    "  --listen\n"
    "       Listen and respond to requests sent from another node.\n"
    "\n"
    "  --length \n"
    "       Send requests with the specified number of bytes in the payload.\n"
    "\n"
    "  --num, --count \n"
    "       Send the specified number of requests and exit.\n"
    "\n"
    "  -d, --debug []\n"
    "       Set debug logging to the given level. (Default: 1)\n"
    "\n"
    "  -h, --help\n"
    "       Print help information.\n"
    "\n";

OPTION-HILFEGRUPPEN

OptionSets enthalten einen HelpGroupName-String, mit dem Optionen in der Hilfeausgabe gruppiert werden. Die Funktion PrintOptionHelp() verwendet HelpGroupName als Abschnittstitel in der generierten Nutzungsausgabe. Wenn mehrere OptionSets denselben HelpGroupName haben, druckt PrintOptionHelp() die Hilfe zu den verschiedenen OptionSets unter einem gemeinsamen Abschnittstitel aus.

ParseArgs

bool ParseArgs(
  const char *progName,
  int argc,
  char *argv[],
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler
)

ParseArgs

bool ParseArgs(
  const char *progName,
  int argc,
  char *argv[],
  OptionSet *optSets[]
)

ParseArgsFromEnvVar

bool ParseArgsFromEnvVar(
  const char *progName,
  const char *varName,
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler,
  bool ignoreUnknown
)

Parsen Sie eine Reihe von Argumenten aus einer benannten Umgebungsvariablen.

ParseArgsFromEnvVar() liest eine benannte Umgebungsvariable und übergibt den Wert zum Parsen an ParseArgsFromString(). Wenn die Umgebungsvariable nicht festgelegt ist, führt die Funktion nichts aus.

Details
Parameter
[in] progName
Der Name des Programms oder des Kontexts, in dem die Argumente geparst werden. Dieser String wird als Präfix für Fehlermeldungen und Warnungen verwendet.
[in] varName
Der Name der Umgebungsvariablen.
[in] optSets
Eine Liste mit Verweisen auf OptionSet-Strukturen, die die rechtlichen Optionen definieren. Die bereitgestellte Liste muss mit NULL enden.
[in] nonOptArgHandler
Ein Zeiger auf eine Funktion, die aufgerufen wird, sobald das Parsen von Optionen mit allen verbleibenden Nicht-Options-Argumenten abgeschlossen ist . Die Funktion wird unabhängig davon aufgerufen, ob Argumente vorhanden sind. Wenn NULL übergeben wird, meldet ParseArgs() einen Fehler, falls Nicht-Optionsargumente vorhanden sind.
[in] ignoreUnknown
Wenn „true“ festgelegt ist, werden alle nicht erkannten Optionen ohne Meldung ignoriert.
Rückgabe
true, wenn alle Optionen und Nicht-Options-Argumente erfolgreich geparst wurden oder wenn die angegebene Umgebungsvariable nicht festgelegt ist; false, wenn eine Option nicht erkannt wurde, eine der Handler-Funktionen fehlgeschlagen ist (d.h. "false" zurückgegeben wurde) oder wenn ein interner Fehler aufgetreten ist.

ParseArgsFromEnvVar

bool ParseArgsFromEnvVar(
  const char *progName,
  const char *varName,
  OptionSet *optSets[]
)

ParseArgsFromEnvVar

bool ParseArgsFromEnvVar(
  const char *progName,
  const char *varName,
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler
)

ParseArgsFromString

bool ParseArgsFromString(
  const char *progName,
  const char *argStr,
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler,
  bool ignoreUnknown
)

Parst eine Reihe von Argumenten aus einem bestimmten String.

ParseArgsFromString() teilt einen bestimmten String (argStr) in einen Satz von Argumenten auf und parst die Argumente mithilfe der Funktion ParseArgs().

Details
Parameter
[in] progName
Der Name des Programms oder des Kontexts, in dem die Argumente geparst werden. Dieser String wird als Präfix für Fehlermeldungen und Warnungen verwendet.
[in] argStr
Ein String mit den zu analysierenden Optionen und Argumenten.
[in] optSets
Eine Liste mit Verweisen auf OptionSet-Strukturen, die die rechtlichen Optionen definieren. Die bereitgestellte Liste muss mit NULL enden.
[in] nonOptArgHandler
Ein Zeiger auf eine Funktion, die aufgerufen wird, sobald das Parsen von Optionen mit allen verbleibenden Nicht-Options-Argumenten abgeschlossen ist . Die Funktion wird unabhängig davon aufgerufen, ob Argumente vorhanden sind. Wenn NULL übergeben wird, meldet ParseArgs() einen Fehler, falls Nicht-Optionsargumente vorhanden sind.
[in] ignoreUnknown
Wenn „true“ festgelegt ist, werden alle nicht erkannten Optionen ohne Meldung ignoriert.
Rückgabe
true, wenn alle Optionen und Nicht-Optionsargumente erfolgreich geparst wurden; false, wenn eine Option nicht erkannt wurde, eine der Handler-Funktionen fehlgeschlagen ist (d.h. eine der Handler-Funktionen zurückgegeben wurde) oder ein interner Fehler aufgetreten ist.

Die Syntax der Eingabestrings ähnelt der Syntax des Unix-Shell-Befehls, jedoch mit einem vereinfachten Schema für die Anführungszeichen. Insbesondere:

  • Argumente werden durch Leerzeichen getrennt, sofern sie nicht in Anführungszeichen gesetzt oder mit Escapezeichen versehen sind.
  • Durch einen umgekehrten Schrägstrich wird das folgende Zeichen maskiert, sodass es als normales Zeichen behandelt wird. Der umgekehrte Schrägstrich wird entfernt.
  • Teilstrings in einfachen oder doppelten Anführungszeichen beginnen bzw. enden in Anführungszeichen. Innerhalb eines Teilstrings sind die einzigen Sonderzeichen der umgekehrte Schrägstrich, mit dem das nächste Zeichen maskiert wird, sowie das entsprechende Anführungszeichen am Ende. Anführungszeichen am Anfang und Ende werden entfernt.

E.g.:

--listen --count 10 --sw-version '1.0 (DEVELOPMENT)' "--hostname=nest.com"

ParseArgsFromString

bool ParseArgsFromString(
  const char *progName,
  const char *argStr,
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler
)

ParseArgsFromString

bool ParseArgsFromString(
  const char *progName,
  const char *argStr,
  OptionSet *optSets[]
)

ParseBoolean

bool ParseBoolean(
  const char *str,
  bool & output
)

Parsen Sie einen String als booleschen Wert.

Diese Funktion akzeptiert die folgenden Eingabewerte (Groß-/Kleinschreibung wird nicht berücksichtigt): "true", "yes", "t", "y", "1", "false", "no", "f", "n", "0".

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der den zu parsenden Wert darstellt.
[out] output
Ein Verweis auf den Speicher für einen booleschen Wert, in dem der geparste Wert bei Erfolg gespeichert wird.
Rückgabe
"true" bei Erfolg oder "false" bei einem Fehler.

ParseFabricId

bool ParseFabricId(
  const char *str,
  uint64_t & fabricId,
  bool allowReserved
)

Parst eine Weave-Fabric-ID in Textform.

Die Funktion ParseFabricId() akzeptiert eine im Hexadezimalformat angegebene 64-Bit-Fabric-ID mit oder ohne vorangestelltes „0x“.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Fabric-ID enthält.
[out] output
Ein Verweis auf einen uint64_t lvalue, in dem der geparste Wert bei Erfolg gespeichert wird.
[in] allowReserved
Wenn „true“, wird das Parsen von Fabric-IDs im reservierten Bereich zugelassen.
Rückgabe
"true", wenn der Wert erfolgreich geparst wurde; andernfalls "false".

ParseHexString

bool ParseHexString(
  const char *hexStr,
  uint32_t strLen,
  uint8_t *outBuf,
  uint32_t outBufSize,
  uint32_t & outDataLen
)

Parst einen String von Byte in Hexadezimalform.

ParseHexString() erwartet, dass die Eingabe in Form von Hexadezimalziffernpaaren (Groß- oder Kleinbuchstaben) erfolgt. Hexadezimalpaare können optional durch eines der folgenden Zeichen getrennt werden: Doppelpunkt, Semikolon, Komma, Punkt oder Bindestrich. Außerdem werden Leerzeichen an einer beliebigen Stelle im Eingabestring ignoriert.

Details
Parameter
[in] hexStr
Ein Zeiger auf den zu parsenden String.
[in] strLen
Anzahl der Zeichen in Hex-Str, die geparst werden sollen.
[in] outBuf
Ein Zeiger auf einen Puffer, in dem die Parsing-Byte gespeichert werden.
[in] outBufSize
Die Größe des Puffers, auf den outBuf zeigt.
[out] outDataLen
Ein Verweis auf eine Ganzzahl, die die Gesamtzahl der geparsten Byte empfängt. Falls outBuf nicht groß genug ist, um die angegebene Anzahl von Byte aufzunehmen, wird outDataLen auf UINT32_MAX gesetzt.
Rückgabe
„true“, wenn der Wert erfolgreich geparst wurde; „false“, wenn die Eingabedaten fehlerhaft sind oder wenn outBuf zu klein ist.

ParseIPAddress

bool ParseIPAddress(
  const char *str,
  IPAddress & output
)

Parsen Sie eine IP-Adresse in Textform.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Adresse enthält.
[out] output
Ein Verweis auf ein IPAddress-Objekt, in dem der geparste Wert bei Erfolg gespeichert wird.
Rückgabe
"true", wenn der Wert erfolgreich geparst wurde; andernfalls "false".

ParseInt

bool ParseInt(
  const char *str,
  uint64_t & output,
  int base
)

Parsen und versuchen, einen String in eine vorzeichenlose 64-Bit-Ganzzahl zu konvertieren, wobei die auf dem Basisparameter entsprechende Interpretation angewendet wird.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Ganzzahl darstellt.
[out] output
Ein Speicherverweis für eine vorzeichenlose 64-Bit-Ganzzahl, unter der der geparste Wert bei Erfolg gespeichert wird.
[in] base
Basis, nach der der String interpretiert und geparst werden soll. Bei 0 oder 16 kann der String hexadezimal sein und „0x“ vorangestellt werden. Andernfalls wird eine 0 als 10 impliziert, sofern keine führende 0 gefunden wird, in der eine 8 impliziert wird.
Rückgabe
"true" bei Erfolg oder "false" bei einem Fehler.

ParseInt

bool ParseInt(
  const char *str,
  uint32_t & output,
  int base
)

Parsen und versuchen, einen String in eine vorzeichenlose 32-Bit-Ganzzahl zu konvertieren, wobei die auf dem Basisparameter entsprechende Interpretation angewendet wird.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Ganzzahl darstellt.
[out] output
Ein Speicherverweis für eine vorzeichenlose 32-Bit-Ganzzahl, unter der der geparste Wert bei Erfolg gespeichert wird.
[in] base
Basis, nach der der String interpretiert und geparst werden soll. Bei 0 oder 16 kann der String hexadezimal sein und „0x“ vorangestellt werden. Andernfalls wird eine 0 als 10 impliziert, sofern keine führende 0 gefunden wird, in der eine 8 impliziert wird.
Rückgabe
"true" bei Erfolg oder "false" bei einem Fehler.

ParseInt

bool ParseInt(
  const char *str,
  int32_t & output,
  int base
)

Parsen und versuchen, einen String in eine 32-Bit-Ganzzahl mit Vorzeichen zu konvertieren, wobei die entsprechende Interpretation basierend auf dem Basisparameter angewendet wird.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Ganzzahl darstellt.
[out] output
Ein Speicherverweis für eine vorzeichenbehaftete 32-Bit-Ganzzahl, unter der der geparste Wert bei Erfolg gespeichert wird.
[in] base
Basis, nach der der String interpretiert und geparst werden soll. Bei 0 oder 16 kann der String hexadezimal sein und „0x“ vorangestellt werden. Andernfalls wird eine 0 als 10 impliziert, sofern keine führende 0 gefunden wird, in der eine 8 impliziert wird.
Rückgabe
"true" bei Erfolg oder "false" bei einem Fehler.

ParseInt

bool ParseInt(
  const char *str,
  uint64_t & output
)

Parsen und versuchen, einen String, der als Dezimalwert interpretiert wird, in eine vorzeichenlose 64-Bit-Ganzzahl umzuwandeln, wobei die auf dem Basisparameter entsprechende Interpretation angewendet wird.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Ganzzahl darstellt.
[out] output
Ein Speicherverweis für eine vorzeichenlose 64-Bit-Ganzzahl, unter der der geparste Wert bei Erfolg gespeichert wird.
Rückgabe
"true" bei Erfolg oder "false" bei einem Fehler.

ParseInt

bool ParseInt(
  const char *str,
  uint32_t & output
)

Parsen und versuchen, einen String, der als Dezimalwert interpretiert wird, in eine vorzeichenlose 32-Bit-Ganzzahl umzuwandeln und die entsprechende Interpretation basierend auf dem Basisparameter anzuwenden.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Ganzzahl darstellt.
[out] output
Ein Speicherverweis für eine vorzeichenlose 32-Bit-Ganzzahl, unter der der geparste Wert bei Erfolg gespeichert wird.
Rückgabe
"true" bei Erfolg oder "false" bei einem Fehler.

ParseInt

bool ParseInt(
  const char *str,
  int32_t & output
)

Parsen und versuchen, einen String, der als Dezimalwert interpretiert wird, in eine vorzeichenbehaftete 32-Bit-Ganzzahl umzuwandeln und die entsprechende Interpretation basierend auf dem Basisparameter anzuwenden.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Ganzzahl darstellt.
[out] output
Ein Speicherverweis für eine vorzeichenbehaftete 32-Bit-Ganzzahl, unter der der geparste Wert bei Erfolg gespeichert wird.
Rückgabe
"true" bei Erfolg oder "false" bei einem Fehler.

ParseInt

bool ParseInt(
  const char *str,
  uint16_t & output
)

Parsen und versuchen, einen String, der als Dezimalwert interpretiert wird, in eine vorzeichenlose 16-Bit-Ganzzahl umzuwandeln, wobei die auf dem Basisparameter entsprechende Interpretation angewendet wird.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Ganzzahl darstellt.
[out] output
Ein Speicherverweis für eine vorzeichenlose 16-Bit-Ganzzahl, unter der der geparste Wert bei Erfolg gespeichert wird.
Rückgabe
"true" bei Erfolg oder "false" bei einem Fehler.

ParseInt

bool ParseInt(
  const char *str,
  int16_t & output
)

Parsen Sie einen String, der als Dezimalwert interpretiert wird, und wandeln Sie ihn in eine vorzeichenbehaftete 16-Bit-Ganzzahl um. Dabei wird die entsprechende Interpretation basierend auf dem Basisparameter angewendet.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Ganzzahl darstellt.
[out] output
Ein Speicherverweis für eine vorzeichenbehaftete 16-Bit-Ganzzahl, unter der der geparste Wert bei Erfolg gespeichert wird.
Rückgabe
"true" bei Erfolg oder "false" bei einem Fehler.

ParseInt

bool ParseInt(
  const char *str,
  uint8_t & output
)

Parsen und versuchen, einen String, der als Dezimalwert interpretiert wird, in eine vorzeichenlose 8-Bit-Ganzzahl umzuwandeln und die entsprechende Interpretation basierend auf dem Basisparameter anzuwenden.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Ganzzahl darstellt.
[out] output
Ein Speicherverweis für eine vorzeichenlose 8-Bit-Ganzzahl, unter der der geparste Wert bei Erfolg gespeichert wird.
Rückgabe
"true" bei Erfolg oder "false" bei einem Fehler.

ParseNodeId

bool ParseNodeId(
  const char *str,
  uint64_t & nodeId
)

Parst eine Weave-Knoten-ID in Textform.

Die Funktion ParseNodeId() akzeptiert entweder eine im Hexadezimalformat angegebene 64-Bit-Knoten-ID (mit oder ohne vorangestelltes "0x") oder die Wörter "any" oder "all", die als Bedeutung der Any-Knoten-ID (0xFFFFFFFFFFFFFF) interpretiert werden.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Knoten-ID enthält.
[out] output
Ein Verweis auf einen uint64_t lvalue, in dem der geparste Wert bei Erfolg gespeichert wird.
Rückgabe
"true", wenn der Wert erfolgreich geparst wurde; andernfalls "false".

ParseSubnetId

bool ParseSubnetId(
  const char *str,
  uint16_t & subnetId
)

Parsen und versuchen, einen String in eine vorzeichenlose 16-Bit-Subnetz-ID umzuwandeln, wobei der String als hexadezimal interpretiert wird.

Details
Parameter
[in] str
Ein Zeiger auf einen NULL-terminierten C-String, der die zu parsende Subnetz-ID im Hexadezimalformat darstellt.
[in,out] subnetId
Ein Speicherverweis für eine vorzeichenlose 16-Bit-Ganzzahl, unter der der geparste Subnetz-ID-Wert bei Erfolg gespeichert wird.
Rückgabe
"true" bei Erfolg oder "false" bei einem Fehler.

PrintOptionHelp

void PrintOptionHelp(
  OptionSet *optSets[],
  FILE *s
)

Gibt den Hilfetext für eine angegebene Liste von Optionen an einen Stream aus.

Details
Parameter
[in] optSets
Eine Liste von Zeigern auf OptionSet-Strukturen, die den zu druckenden Hilfetext enthalten.
[in] s
Der FILE-Stream, in den der Hilfetext ausgegeben werden soll.

PutStringWithBlankLine

void PutStringWithBlankLine(
  FILE *s,
  const char *str
)

PutStringWithNewLine

void PutStringWithNewLine(
  FILE *s,
  const char *str
)

SplitArgs

int32_t SplitArgs(
  char *argStr,
  char **& argList,
  char *initialArg
)