nl::ArgParser

摘要

列舉

OptionArgumentType 列舉
定義指令列選項的引數需求。

Typedefs

NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[]) typedef
bool(*
透過呼叫的函式,可用來處理任何其餘非選項的指令列引數。
OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) typedef
bool(*
可呼叫的函式來處理一組指令列選項。

變數

PrintArgError = DefaultPrintArgError)(const char *msg,...)
void(*
用於列印引數剖析期間錯誤的函式指標。
gActiveOptionSets = NULL
傳遞至目前運作中 ParseArgs() 呼叫的 OptionSet 清單。

函式

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
列印與引數剖析相關的錯誤訊息。
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
剖析一組指令列樣式的引數,呼叫處理函式以處理每個選項和非選項引數。
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
從已命名的環境變數剖析一組引數。
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
從指定字串剖析一組引數。
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
將字串剖析為布林值。
ParseFabricId(const char *str, uint64_t & fabricId, bool allowReserved)
bool
剖析文字形式的 Weave 布料 ID。
ParseHexString(const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen)
bool
剖析以十六進位格式提供的位元組字串。
ParseIPAddress(const char *str, IPAddress & output)
bool
以文字格式剖析 IP 位址。
ParseInt(const char *str, uint64_t & output, int base)
bool
剖析並嘗試將字串轉換為 64 位元無正負號整數,並根據基礎參數套用適當的解釋。
ParseInt(const char *str, uint32_t & output, int base)
bool
剖析並嘗試將字串轉換為 32 位元無正負號整數,並根據基礎參數套用適當的解釋。
ParseInt(const char *str, int32_t & output, int base)
bool
剖析並嘗試將字串轉換為 32 位元帶正負號整數,並根據基礎參數套用適當的解讀。
ParseInt(const char *str, uint64_t & output)
bool
剖析並嘗試將解讀為十進位值的字串轉換為 64 位元無正負號整數,並根據基本參數套用適當的解釋。
ParseInt(const char *str, uint32_t & output)
bool
剖析並嘗試將解讀為十進位值的字串轉換為 32 位元無正負號整數,並根據底數參數套用適當的解釋。
ParseInt(const char *str, int32_t & output)
bool
剖析並嘗試將解讀為十進位值的字串轉換為 32 位元帶正負號整數,並根據基礎參數套用適當的解釋。
ParseInt(const char *str, uint16_t & output)
bool
剖析並嘗試將解讀為十進位值的字串轉換為 16 位元無正負號整數,並根據基礎參數套用適當的解釋。
ParseInt(const char *str, int16_t & output)
bool
剖析並嘗試將解讀為十進位值的字串轉換為 16 位元帶正負號整數,並根據基本參數套用適當的解釋。
ParseInt(const char *str, uint8_t & output)
bool
剖析並嘗試將解讀為十進位值的字串轉換為 8 位元無正負號整數,並根據基本參數套用適當的解釋。
ParseNodeId(const char *str, uint64_t & nodeId)
bool
剖析文字形式中的 Weave 節點 ID。
ParseSubnetId(const char *str, uint16_t & subnetId)
bool
剖析並嘗試將字串轉換為 16 位元無正負號的子網路 ID,將字串解讀為十六進位。
PrintOptionHelp(OptionSet *optSets[], FILE *s)
void
將指定選項清單的說明文字輸出至串流。
PutStringWithBlankLine(FILE *s, const char *str)
void
PutStringWithNewLine(FILE *s, const char *str)
void
SplitArgs(char *argStr, char **& argList, char *initialArg)
int32_t

類別

nl::ArgParser::HelpOptions

處理資訊選項 (說明、版本) 的常見 OptionSet

nl::ArgParser::OptionSetBase

OptionSet 是處理常式是虛擬函式。

Structs

nl::ArgParser::OptionDef

定義指令列選項。

nl::ArgParser::OptionSet

定義一組邏輯相關和可重複使用的指令列選項。

列舉

OptionArgumentType

 OptionArgumentType

定義指令列選項的引數需求。

Typedefs

NonOptionArgHandlerFunct

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

透過呼叫的函式,可用來處理任何其餘非選項的指令列引數。

OptionHandlerFunct

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

可呼叫的函式來處理一組指令列選項。

變數

PrintArgError

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

用於列印引數剖析期間錯誤的函式指標。

應用程式應呼叫 PrintArgError(),回報選項和非選項引數處理函式中的錯誤,而非直接列印至 stdout/stderr。

預設為 DefaultPrintArgError() 函式的指標。

gActiveOptionSets

OptionSet ** gActiveOptionSets = NULL

傳遞至目前運作中 ParseArgs() 呼叫的 OptionSet 清單。

如果未呼叫 ParseArgs(),這個值會是 NULL。

函式

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,
  ...
)

列印與引數剖析相關的錯誤訊息。

用來輸出因引數剖析而產生的錯誤訊息。

詳細資料
參數
[in] msg
要列印的訊息。

應用程式應透過 PrintArgError 函式指標呼叫,而非直接呼叫此函式。

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
)

剖析一組指令列樣式的引數,呼叫處理函式以處理每個選項和非選項引數。

ParseArgs() 使用引數 (argv) 清單,並根據一組提供的選項定義剖析引數。這個函式支援長 (opt) 和短 (-o) 選項,並實作與 GNU getopt_long(3) 函式相同的選項語法。

詳細資料
參數
[in] progName
剖析引數時所在的程式或結構定義名稱。這個字串將用於在錯誤訊息和警告中加上前置字串。
[in] argc
要剖析的引數數量,再加上 1。
[in] argv
要剖析的引數字串陣列。陣列長度必須大於為 argc 指定的值,且 argv[argc] 必須設為 NULL。引數剖析開頭為第二個陣列元素 (argv[1]);元素 0 則會遭到忽略。
[in] optSets
定義法律選項的 OptionSet 結構指標清單。提供的清單必須以 NULL 終止。
[in] nonOptArgHandler
使用任何其餘非選項引數完成選項剖析後,呼叫函式的指標。無論是否保留任何引數,系統都會呼叫函式。如果傳遞 NULL,只要存在任何非選項引數,ParseArgs() 就會回報錯誤。
[in] ignoreUnknown
如果設為 true,系統會忽略所有無法辨識的選項。
傳回
如果成功剖析所有選項和非選項引數,則為 true;如果系統無法辨識選項,或其中一個處理常式函式失敗 (亦即傳回 false),則為 false

選項定義會以 OptionSet 結構 (optSets) 陣列的形式傳遞至 ParseArgs()。每個 OptionSet 都包含選項定義和處理常式函式的陣列。ParseArgs() 按指定順序處理選項引數,並為每個已辨識的選項呼叫各自的處理常式函式。剖析所有選項後,系統會呼叫一個獨立的非選項處理常式函式 (nonOptArgHandler) 一次,以便處理任何剩餘的引數。

選項組合

OptionSet 包含一組選項定義,以及指向在遇到其中一個關聯選項時,將會呼叫的處理常式函式的指標。選項集也包含說明文字,用來說明每個選項的語法和用途 (請參閱下方的「選項說明」)。選項組合可用來建立可重複使用的相關選項集合。這有助於簡化維護多個接受類似選項 (例如測試應用程式) 的應用程式所需的工作。

定義 OptionSetsone 有兩種模式可以選擇初始化 OptionSet 結構體本身,例如做為靜態全域變數,或加入 OptionSetBase 子類別,並提供建構函式。後者會使用純虛擬 HandleOption() 函式,將選項處理作業委派給子類別。

OptionSet 清單會做為 NULL 結尾的指標陣列傳遞至 ParseArgs() 函式。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))
    {
        ...
    }
}

選項定義

選項是使用 OptionDef 結構定義。選項定義會整理成 OptionDef 元素的陣列,其中每個元素都包含:選項名稱、用來識別選項的整數 ID,以及選項是否預期/允許引數。選項陣列的結尾會透過 NULL Name 欄位發出信號。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 }
};

選項 ID

Option ID 會針對處理選項的程式碼指出相關選項 (OptionHandler 函式)。選項 ID 與顯示選項的 OptionSet 相關,因此可能可以在不同的 OptionSet 中重複使用 (請參閱下方的 SHORT OPTIONS)。常見的慣例是,選項編號的開頭是 1000,但是任何數字 >128 個可用可以使用不同選項名稱相同的選項 ID 建立別名選項。

簡短選項

與 getopt_long(3) 不同,ParseArgs() 不會使用單獨字串來指定短選項字元清單。反之,如果選項的 ID 值落在圖形 ASCII 字元的範圍內,就允許將該字元用做簡短選項。

ParseArgs() 規定所有 OptionSet 的簡短選項字元不得重複。因此,如果課程之間共用任何 OptionSet,則不建議使用短選項,因為最有可能發生碰撞。短選項字元可在單一 OptionSet 中重複使用,以便建立別名長選項名稱。

選項說明

每個 OptionSet 都包含 OptionHelp 字串,說明相關選項的用途和語法。PrintOptionHelp() 函式會使用這些字串產生選項使用情形資訊。

按照慣例,選項說明字串會包含語法範例,後接選項文字說明。如果選項有簡短版本或別名,則會優先提供,優先於主要全名。為保持一致性,語法行會以 2 個空格縮排,而說明行則會以 7 空格縮排。每個選項說明後面會有一個空白行,包括最後一個欄位。

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";

選項說明群組

OptionSet 包含 HelpGroupName 字串,可在說明輸出內容中將選項分組。PrintOptionHelp() 函式會在產生的用法輸出內容中,使用 HelpGroupName 做為區段標題。如果多個 OptionSet 使用相同的 HelpGroupName,則 PrintOptionHelp() 會在共同區段標題下方,列印不同的 OptionSet 選項說明。

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
)

從已命名的環境變數剖析一組引數。

ParseArgsFromEnvVar() 會讀取已命名的環境變數,並將值傳送至 ParseArgsFromString() 進行剖析。如未設定環境變數,則函式不會執行任何動作。

詳細資料
參數
[in] progName
剖析引數時所在的程式或結構定義名稱。這個字串將用於在錯誤訊息和警告中加上前置字串。
[in] varName
環境變數的名稱。
[in] optSets
定義法律選項的 OptionSet 結構指標清單。提供的清單必須以 NULL 終止。
[in] nonOptArgHandler
使用任何其餘非選項引數完成選項剖析後,呼叫函式的指標。無論是否保留任何引數,系統都會呼叫函式。如果傳遞 NULL,只要存在任何非選項引數,ParseArgs() 就會回報錯誤。
[in] ignoreUnknown
如果設為 true,系統會忽略所有無法辨識的選項。
傳回
如果成功剖析所有選項和非選項引數,或是未設定指定的環境變數,則為 true;如果其中一個處理常式函式失敗 (亦即傳回 false),或發生內部錯誤,則傳回 false

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
)

從指定字串剖析一組引數。

ParseArgsFromString() 將指定字串 (argStr) 分割成一組引數,並使用 ParseArgs() 函式剖析引數。

詳細資料
參數
[in] progName
剖析引數時所在的程式或結構定義名稱。這個字串將用於在錯誤訊息和警告中加上前置字串。
[in] argStr
包含要剖析的選項和引數的字串。
[in] optSets
定義法律選項的 OptionSet 結構指標清單。提供的清單必須以 NULL 終止。
[in] nonOptArgHandler
使用任何其餘非選項引數完成選項剖析後,呼叫函式的指標。無論是否保留任何引數,系統都會呼叫函式。如果傳遞 NULL,只要存在任何非選項引數,ParseArgs() 就會回報錯誤。
[in] ignoreUnknown
如果設為 true,系統會忽略所有無法辨識的選項。
傳回
如果成功剖析所有選項和非選項引數,則為 true;如果其中一個處理常式函式失敗 (亦即傳回 false),或發生內部錯誤,則傳回 false

輸入字串的語法與 Unix 殼層指令語法類似,但具有簡化的引用配置。詳細說明:

  • 除非空格遭到引號或逸出,否則引數會以空白字元分隔。
  • 反斜線會逸出下列字元,導致系統將其視為一般字元。反斜線本身就已經去除。
  • 子字串的單引號或雙引號。子字串中唯一的特殊字元是反斜線,此字元會逸出下一個字元和對應的結尾引號。系統會移除開始/結束引號字元。

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
)

將字串剖析為布林值。

這個函式接受下列輸入值 (不區分大小寫):「true」、「yes」、「t」、「y」、「1」、「false」、「no」、「f」、「n」、「0」。

詳細資料
參數
[in] str
以 NULL 結尾的 C 字串指標,代表要剖析的值。
[out] output
為布林值儲存的參照,此佈林值會在成功時儲存。
傳回
是的;否則傳回 false。

ParseFabricId

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

剖析文字形式的 Weave 布料 ID。

ParseFabricId() 函式接受以十六進位格式指定的 64 位元架構 ID (開頭或不包含開頭的「0x」)。

詳細資料
參數
[in] str
指向 NULL 結尾的 C 字串的指標,其中包含要剖析的布料 ID。
[out] output
uint64_t lvalue 的參照,剖析值會在成功時儲存。
[in] allowReserved
如果設為 true,則允許剖析保留範圍內的布料 ID。
傳回
如果值已成功剖析,則傳回 true;否則為 false。

ParseHexString

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

剖析以十六進位格式提供的位元組字串。

ParseHexString() 會預期輸入內容採用十六進位數字的組合形式 (大寫或小寫)。您可以選擇使用下列任一字元 (冒號、分號、逗號、句號或破折號) 分隔十六進位組合。此外,系統會忽略輸入字串中任何一處的空白字元。

詳細資料
參數
[in] hexStr
要剖析字串的指標。
[in] strLen
要剖析的十六進位字元數。
[in] outBuf
指向要儲存剖析位元組的緩衝區指標。
[in] outBufSize
outBuf 指向的緩衝區大小。
[out] outDataLen
這是整數的參照,用來接收剖析的位元組總數。如果事件 outBuf 不夠大,無法容納指定的位元組數,系統會將 outDataLen 設為 UINT32_MAX。
傳回
如果值已成功剖析,則傳回 true;如果輸入資料格式錯誤,或 outBuf 太小,則為「false」。

ParseIPAddress

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

以文字格式剖析 IP 位址。

詳細資料
參數
[in] str
以 NULL 結尾的 C 字串指標,其中包含要剖析的地址。
[out] output
IPAddress 物件的參照,剖析值會在成功時儲存。
傳回
如果值已成功剖析,則傳回 true;否則為 false。

ParseInt

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

剖析並嘗試將字串轉換為 64 位元無正負號整數,並根據基礎參數套用適當的解釋。

詳細資料
參數
[in] str
以 NULL 結尾的 C 字串指標,代表要剖析的整數。
[out] output
儲存 64 位元無正負號整數的儲存空間參照,剖析值會在成功時儲存。
[in] base
應根據字串,以該字串解讀及剖析該字串。如果值為 0 或 16,字串可能會是十六進制,且前置字元為「0x」。否則,0 會隱含為 10,除非遇到前 8 的隱含 0。
傳回
是的;否則傳回 false。

ParseInt

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

剖析並嘗試將字串轉換為 32 位元無正負號整數,並根據基礎參數套用適當的解釋。

詳細資料
參數
[in] str
以 NULL 結尾的 C 字串指標,代表要剖析的整數。
[out] output
32 位元無正負號整數的儲存空間參照,剖析值會在成功時儲存。
[in] base
應根據字串,以該字串解讀及剖析該字串。如果值為 0 或 16,字串可能會是十六進制,且前置字元為「0x」。否則,0 會隱含為 10,除非遇到前 8 的隱含 0。
傳回
是的;否則傳回 false。

ParseInt

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

剖析並嘗試將字串轉換為 32 位元帶正負號整數,並根據基礎參數套用適當的解讀。

詳細資料
參數
[in] str
以 NULL 結尾的 C 字串指標,代表要剖析的整數。
[out] output
儲存 32 位元帶正負號整數的儲存空間參照,剖析值會在成功時儲存。
[in] base
應根據字串,以該字串解讀及剖析該字串。如果值為 0 或 16,字串可能會是十六進制,且前置字元為「0x」。否則,0 會隱含為 10,除非遇到前 8 的隱含 0。
傳回
是的;否則傳回 false。

ParseInt

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

剖析並嘗試將解讀為十進位值的字串轉換為 64 位元無正負號整數,並根據基本參數套用適當的解釋。

詳細資料
參數
[in] str
以 NULL 結尾的 C 字串指標,代表要剖析的整數。
[out] output
儲存 64 位元無正負號整數的儲存空間參照,剖析值會在成功時儲存。
傳回
是的;否則傳回 false。

ParseInt

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

剖析並嘗試將解讀為十進位值的字串轉換為 32 位元無正負號整數,並根據底數參數套用適當的解釋。

詳細資料
參數
[in] str
以 NULL 結尾的 C 字串指標,代表要剖析的整數。
[out] output
32 位元無正負號整數的儲存空間參照,剖析值會在成功時儲存。
傳回
是的;否則傳回 false。

ParseInt

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

剖析並嘗試將解讀為十進位值的字串轉換為 32 位元帶正負號整數,並根據基礎參數套用適當的解釋。

詳細資料
參數
[in] str
以 NULL 結尾的 C 字串指標,代表要剖析的整數。
[out] output
儲存 32 位元帶正負號整數的儲存空間參照,剖析值會在成功時儲存。
傳回
是的;否則傳回 false。

ParseInt

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

剖析並嘗試將解讀為十進位值的字串轉換為 16 位元無正負號整數,並根據基礎參數套用適當的解釋。

詳細資料
參數
[in] str
以 NULL 結尾的 C 字串指標,代表要剖析的整數。
[out] output
儲存 16 位元無正負號整數的儲存空間參照,剖析值會在成功時儲存。
傳回
是的;否則傳回 false。

ParseInt

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

剖析並嘗試將解讀為十進位值的字串轉換為 16 位元帶正負號整數,並根據基本參數套用適當的解釋。

詳細資料
參數
[in] str
以 NULL 結尾的 C 字串指標,代表要剖析的整數。
[out] output
儲存 16 位元帶正負號整數的儲存空間參照,剖析值會在成功時儲存。
傳回
是的;否則傳回 false。

ParseInt

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

剖析並嘗試將解讀為十進位值的字串轉換為 8 位元無正負號整數,並根據基本參數套用適當的解釋。

詳細資料
參數
[in] str
以 NULL 結尾的 C 字串指標,代表要剖析的整數。
[out] output
儲存 8 位元無正負號整數的儲存空間參照,剖析值會在成功時儲存。
傳回
是的;否則傳回 false。

ParseNodeId

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

剖析文字形式中的 Weave 節點 ID。

ParseNodeId() 函式可接受以十六進位格式指定 (無論是否開頭「0x」) 的 64 位元節點 ID,或是「any」字詞或「all」系統會解讀為任何節點 ID (0xFFFFFFFFFFFFFFFF)

詳細資料
參數
[in] str
以 NULL 結尾的 C 字串指標,其中包含要剖析的節點 ID。
[out] output
uint64_t lvalue 的參照,剖析值會在成功時儲存。
傳回
如果值已成功剖析,則傳回 true;否則為 false。

ParseSubnetId

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

剖析並嘗試將字串轉換為 16 位元無正負號的子網路 ID,將字串解讀為十六進位。

詳細資料
參數
[in] str
指向以 NULL 結尾的 C 字串,代表要剖析的子網路 ID,格式為十六進制。
[in,out] subnetId
對 16 位元無正負號整數的儲存空間參照,這個整數在成功儲存後將儲存剖析的子網路 ID 值。
傳回
是的;否則傳回 false。

PrintOptionHelp

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

將指定選項清單的說明文字輸出至串流。

詳細資料
參數
[in] optSets
OptionSet 結構的指標清單,包含要列印的說明文字。
[in] s
應列印說明文字的 FILE 串流。

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
)