nl::ArgParser

요약

열거

OptionArgumentType enum
명령줄 옵션의 인수 요구사항을 정의합니다.

Typedef

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
16진수 형식으로 제공된 바이트 문자열을 파싱합니다.
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
10진수 값으로 해석된 문자열을 부호 없는 64비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.
ParseInt(const char *str, uint32_t & output)
bool
10진수 값으로 해석된 문자열을 부호 없는 32비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.
ParseInt(const char *str, int32_t & output)
bool
10진수 값으로 해석된 문자열을 부호 있는 32비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.
ParseInt(const char *str, uint16_t & output)
bool
10진수 값으로 해석된 문자열을 부호 없는 16비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.
ParseInt(const char *str, int16_t & output)
bool
10진수 값으로 해석된 문자열을 부호 있는 16비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.
ParseInt(const char *str, uint8_t & output)
bool
10진수 값으로 해석된 문자열을 부호 없는 8비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.
ParseNodeId(const char *str, uint64_t & nodeId)
bool
Weave 노드 ID를 텍스트 형식으로 파싱합니다.
ParseSubnetId(const char *str, uint16_t & subnetId)
bool
문자열을 16비트의 부호 없는 서브넷 ID로 파싱하고 변환하여 문자열을 16진수로 해석합니다.
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.

구조체

nl::ArgParser::OptionDef

명령줄 옵션을 정의합니다.

nl::ArgParser::OptionSet

논리적으로 관련되고 재사용 가능한 명령줄 옵션의 그룹을 정의합니다.

열거

OptionArgumentType

 OptionArgumentType

명령줄 옵션의 인수 요구사항을 정의합니다.

Typedef

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

인수 파싱 중에 발생하는 오류를 출력하는 데 사용되는 함수에 대한 포인터입니다.

애플리케이션은 stdout/stderr로 직접 출력하는 대신 PrintArgError()를 호출하여 옵션 및 비옵션 인수 처리 함수의 오류를 보고해야 합니다.

기본값은 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)을 가져와서 제공된 옵션 정의에 따라 파싱합니다. 이 함수는 long (opt) 및 short (-o) 옵션을 모두 지원하며 GNU getopt_long(3) 함수와 동일한 옵션 구문을 구현합니다.

세부정보
매개변수
[in] progName
인수가 파싱되는 프로그램 또는 컨텍스트의 이름입니다. 이 문자열은 오류 메시지와 경고의 접두사로 사용됩니다.
[in] argc
파싱할 인수 개수에 1을 더한 값입니다.
[in] argv
파싱할 인수 문자열의 배열입니다. 배열 길이는 argc에 지정된 값보다 1 커야 하며 argv[argc] 는 NULL로 설정해야 합니다. 인수 파싱은 second 배열 요소 (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

옵션 ID는 옵션을 처리하는 코드 (OptionHandler 함수)에 대한 옵션을 식별합니다. 옵션 ID는 옵션이 표시되는 OptionSet를 기준으로 하므로 여러 OptionSet에서 재사용될 수 있습니다 (단, 아래의 단축 옵션 참조). 일반적으로 1000에서 옵션 ID를 번호 매기기 시작하지만 모든 숫자 > 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";

옵션 도움말 그룹

OptionSets에는 도움말 출력에서 옵션을 그룹화하는 데 사용되는 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() 함수는 16진수 형식으로 제공된 64비트 패브릭 ID를 허용하며, 맨 앞에 '0x'가 포함되거나 포함되지 않습니다.

세부정보
매개변수
[in] str
파싱할 패브릭 ID가 포함된 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[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
)

16진수 형식으로 제공된 바이트 문자열을 파싱합니다.

ParseHexString()은 16진수 쌍 (대문자 또는 소문자) 형식으로 입력해야 합니다. 16진수 쌍은 콜론, 세미콜론, 쉼표, 마침표, 대시 등 원하는 문자로 구분할 수 있습니다. 또한 입력 문자열의 아무 곳에서나 공백 문자는 무시됩니다.

세부정보
매개변수
[in] hexStr
파싱할 문자열을 가리키는 포인터입니다.
[in] strLen
16진수에서 파싱할 문자의 수입니다.
[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인 경우 문자열은 16진수일 수 있으며 접두사 '0x'가 붙습니다. 그렇지 않으면 8이 함축되어 앞에 0이 오지 않는 한 0은 10으로 암시됩니다.
반환
성공 시에는 진실되고 그렇지 않으면 실패 시 false를 반환합니다.

ParseInt

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

문자열을 부호 없는 32비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 없는 32비트 정수의 저장소에 대한 참조입니다.
[in] base
문자열을 해석하고 파싱하는 기준이 됩니다. 0 또는 16인 경우 문자열은 16진수일 수 있으며 접두사 '0x'가 붙습니다. 그렇지 않으면 8이 함축되어 앞에 0이 오지 않는 한 0은 10으로 암시됩니다.
반환
성공 시에는 진실되고 그렇지 않으면 실패 시 false를 반환합니다.

ParseInt

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

기본 매개변수에 기반한 적절한 해석을 적용하여 문자열을 부호 있는 32비트 정수로 파싱하고 변환하려고 시도합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 32비트 부호 있는 정수의 저장소에 대한 참조입니다.
[in] base
문자열을 해석하고 파싱하는 기준이 됩니다. 0 또는 16인 경우 문자열은 16진수일 수 있으며 접두사 '0x'가 붙습니다. 그렇지 않으면 8이 함축되어 앞에 0이 오지 않는 한 0은 10으로 암시됩니다.
반환
성공 시에는 진실되고 그렇지 않으면 실패 시 false를 반환합니다.

ParseInt

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

10진수 값으로 해석된 문자열을 부호 없는 64비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 없는 64비트 정수의 저장소에 대한 참조입니다.
반환
성공 시에는 진실되고 그렇지 않으면 실패 시 false를 반환합니다.

ParseInt

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

10진수 값으로 해석된 문자열을 부호 없는 32비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 없는 32비트 정수의 저장소에 대한 참조입니다.
반환
성공 시에는 진실되고 그렇지 않으면 실패 시 false를 반환합니다.

ParseInt

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

10진수 값으로 해석된 문자열을 부호 있는 32비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 32비트 부호 있는 정수의 저장소에 대한 참조입니다.
반환
성공 시에는 진실되고 그렇지 않으면 실패 시 false를 반환합니다.

ParseInt

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

10진수 값으로 해석된 문자열을 부호 없는 16비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 없는 16비트 정수의 저장소에 대한 참조입니다.
반환
성공 시에는 진실되고 그렇지 않으면 실패 시 false를 반환합니다.

ParseInt

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

10진수 값으로 해석된 문자열을 부호 있는 16비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 16비트 부호 있는 정수의 저장소에 대한 참조입니다.
반환
성공 시에는 진실되고 그렇지 않으면 실패 시 false를 반환합니다.

ParseInt

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

10진수 값으로 해석된 문자열을 부호 없는 8비트 정수로 파싱하고 변환하여 기본 매개변수에 기반한 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 없는 8비트 정수의 저장소에 대한 참조입니다.
반환
성공 시에는 진실되고 그렇지 않으면 실패 시 false를 반환합니다.

ParseNodeId

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

Weave 노드 ID를 텍스트 형식으로 파싱합니다.

ParseNodeId() 함수는 16진수 형식으로 제공된 64비트 노드 ID (앞에 '0x' 포함 또는 부재) 또는 'any'라는 단어를 허용합니다. 또는 '모두' 임의의 노드 ID (0xFFFFFFFFFFFFFFFF)로 해석됩니다.

세부정보
매개변수
[in] str
파싱할 노드 ID를 포함하는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 uint64_t lvalue에 대한 참조입니다.
반환
값이 파싱된 경우 true이고, 없으면 false입니다.

ParseSubnetId

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

문자열을 16비트의 부호 없는 서브넷 ID로 파싱하고 변환하여 문자열을 16진수로 해석합니다.

세부정보
매개변수
[in] str
파싱할 16진수 형식의 서브넷 ID를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[in,out] subnetId
성공 시 파싱된 서브넷 ID 값이 저장되는 부호 없는 16비트 정수에 대한 저장소 참조입니다.
반환
성공 시에는 진실되고 그렇지 않으면 실패 시 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
)