Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

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의 목록입니다.

Functions

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
base 매개변수를 기반으로 적절한 해석을 적용하여 문자열을 파싱하고 64비트의 부호 없는 정수로 변환해 봅니다.
ParseInt(const char *str, uint32_t & output, int base)
bool
base 매개변수를 기반으로 적절한 해석을 적용하여 문자열을 파싱하고 32비트 부호 없는 정수로 변환해 봅니다.
ParseInt(const char *str, int32_t & output, int base)
bool
base 매개변수를 기반으로 적절한 해석을 적용하여 문자열을 파싱하고 32비트 부호 있는 정수로 변환해 봅니다.
ParseInt(const char *str, uint64_t & output)
bool
10진수로 해석된 문자열을 파싱하여 64비트의 부호 없는 정수로 변환하고 base 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseInt(const char *str, uint32_t & output)
bool
10진수로 해석된 문자열을 파싱하여 32비트의 부호 없는 정수로 변환하고 base 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseInt(const char *str, int32_t & output)
bool
10진수로 해석된 문자열을 32비트 부호 있는 정수로 파싱하고 변환하려고 합니다. base 매개변수를 기반으로 적절한 해석을 적용하세요.
ParseInt(const char *str, uint16_t & output)
bool
십진수 값으로 해석된 문자열을 파싱하여 16비트 부호 없는 정수로 변환하고 base 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseInt(const char *str, int16_t & output)
bool
십진수 값으로 해석된 문자열을 16비트 부호 있는 정수로 파싱하고 변환하려고 합니다. base 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseInt(const char *str, uint8_t & output)
bool
10진수로 해석된 문자열을 8비트 부호 없는 정수로 파싱하고 변환하려고 합니다. base 매개변수를 기반으로 적절한 해석을 적용합니다.
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::도움말 옵션

정보 옵션 처리를 위한 일반적인 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

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

애플리케이션은 옵션 및 비옵션 인수 처리 함수의 오류를 보고하기 위해 PrintArgError()를 호출하여 stdout/stderr에 직접 출력하지 않습니다.

기본값은 DefaultPrintArgError() 함수 포인터입니다.

gActiveOptionSets

OptionSet ** gActiveOptionSets = NULL

현재 활성 상태인 ParseArgs() 호출에 전달된 OptionSet의 목록입니다.

진행 중인 ParseArgs() 호출이 없으면 이 값은 NULL입니다.

Functions

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로 설정되어야 합니다. 인수 파싱이 두 번째 배열 요소 (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() 함수에 전달됩니다. 예:

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 이름 필드로 신호를 받습니다. 예:

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에서 재사용될 수 있습니다 (단, 아래의 SHORT OPTIONS 참조). 일반적인 방법은 1, 000에서 번호 지정 옵션 ID를 시작하는 것이지만 모든 숫자 > 128을 사용할 수 있습니다. 다른 옵션 이름과 동일한 옵션 ID를 사용하여 별칭 옵션을 만들 수 있습니다.

Shorts 옵션

getopt_long(3)과 달리 ParseArgs()는 짧은 옵션 문자 목록을 지정하는 별도의 문자열을 사용하지 않습니다. 오히려 ID 값이 그래픽 ASCII 문자 범위에 속하는 옵션이 있는 경우 이 문자를 짧은 옵션으로 사용할 수 있습니다.

ParseArgs()를 사용하려면 짧은 옵션 문자가 모든 OptionSet에서 고유해야 합니다. 이 때문에 충돌 가능성이 매우 크므로 여러 프로그램 간에 공유되는 OptionSet에는 짧은 옵션을 사용하지 않는 것이 좋습니다. 짧은 옵션 문자는 단일 OptionSet 내에서 재사용되어 별칭 긴 옵션 이름을 생성할 수 있습니다.

옵션 도움말

OptionSet에는 관련 옵션의 목적과 구문을 설명하는 OptionHelp 문자열이 포함됩니다. 이 문자열은 PrintOptionHelp() 함수에서 옵션 사용 정보를 생성하는 데 사용됩니다.

규칙에 따라 옵션 도움말 문자열은 옵션 텍스트 텍스트 뒤에 오는 구문 예시로 구성됩니다. 옵션에 짧은 버전이나 별칭 이름이 있으면 기본 긴 이름보다 먼저 제공됩니다. 일관성을 위해 구문 줄은 공백 2개로 들여쓰기 되지만 설명 줄은 공백 7개로 들여쓰기됩니다. 빈 줄 하나는 마지막 옵션을 포함하여 각 옵션 설명을 따릅니다.

예:

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을 섹션 제목으로 사용합니다. 여러 GroupSet의 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 셸 명령어 구문과 비슷하지만 단순화된 따옴표 체계가 사용됩니다. 구체적으로는 다음과 같습니다.

  • 인수는 공백이 따옴표나 이스케이프 처리되지 않으면 공백으로 구분됩니다.
  • 백슬래시가 이스케이프 처리되어 일반 문자로 처리됩니다. 백슬래시 자체가 제거됩니다.
  • 작은따옴표나 큰따옴표로 묶은 하위 문자열은 시작/종료합니다. 하위 문자열 내에 있는 유일한 특수문자는 백슬래시(다음 문자를 이스케이프 처리)하고 해당 따옴표로 묶습니다. 시작/종료 따옴표 문자는 삭제됩니다.

예:

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

문자열을 부울 값으로 파싱합니다.

이 함수는 대소문자를 구분하는 다음 값 (대소문자 구분)을 허용합니다.&;;;{0/}

세부정보
매개변수
[in] str
파싱할 값을 나타내며 NULL로 끝나는 C 문자열 포인터입니다.
[out] output
성공 시 파싱된 값이 저장될 부울을 위한 저장소 참조입니다.
반환
성공 시 true를, 실패 시 false를 전달합니다.

ParseFabricId

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

텍스트 형식으로 Weave 패브릭 ID를 파싱합니다.

ParseFabricId() 함수는 16진수 형식으로 지정된 64비트 패브릭 ID를 허용하며, 선행 ##99;0x' 유무입니다.

세부정보
매개변수
[in] str
파싱할 Fabric ID를 포함하는 NULL로 끝나는 C 문자열 포인터입니다.
[out] output
성공 시 파싱된 값이 저장될 uint64_t lvalue에 대한 참조입니다.
[in] allowReserved
true인 경우 예약된 범위에 있는 Fabric 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
파싱할 HexStr의 문자 수입니다.
[in] outBuf
파싱 바이트가 저장될 버퍼에 대한 포인터입니다.
[in] outBufSize
outBuf가 가리키는 버퍼의 크기입니다.
[out] outDataLen
파싱된 총 바이트 수를 수신할 정수에 대한 참조입니다. outBuf가 지정된 바이트 수를 차지할 만큼 크지 않은 경우에는 outDataLen가 UINT32_MAX로 설정됩니다.
반환
값이 성공적으로 파싱된 경우 true, 입력 데이터의 형식이 잘못된 경우 false, 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
)

base 매개변수를 기반으로 적절한 해석을 적용하여 문자열을 파싱하고 64비트의 부호 없는 정수로 변환해 봅니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열 포인터입니다.
[out] output
성공 시 파싱된 값이 저장될 64비트 부호 없는 정수의 저장소 참조입니다.
[in] base
문자열을 해석하고 파싱해야 하는 기준입니다. 0 또는 16인 경우 문자열은 16진수이고 "0x"로 시작할 수 있습니다. 그렇지 않은 경우 0은 10으로 암시됩니다. 선행하는 0이 8을 암시하는 경우.
반환
성공 시 true를, 실패 시 false를 전달합니다.

ParseInt

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

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

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열 포인터입니다.
[out] output
성공 시 파싱된 값이 저장될 부호 없는 32비트 정수에 대한 저장소 참조입니다.
[in] base
문자열을 해석하고 파싱해야 하는 기준입니다. 0 또는 16인 경우 문자열은 16진수이고 "0x"로 시작할 수 있습니다. 그렇지 않은 경우 0은 10으로 암시됩니다. 선행하는 0이 8을 암시하는 경우.
반환
성공 시 true를, 실패 시 false를 전달합니다.

ParseInt

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

base 매개변수를 기반으로 적절한 해석을 적용하여 문자열을 파싱하고 32비트 부호 있는 정수로 변환해 봅니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열 포인터입니다.
[out] output
성공 시 파싱된 값이 저장될 32비트 부호 있는 정수의 저장소 참조입니다.
[in] base
문자열을 해석하고 파싱해야 하는 기준입니다. 0 또는 16인 경우 문자열은 16진수이고 "0x"로 시작할 수 있습니다. 그렇지 않은 경우 0은 10으로 암시됩니다. 선행하는 0이 8을 암시하는 경우.
반환
성공 시 true를, 실패 시 false를 전달합니다.

ParseInt

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

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

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열 포인터입니다.
[out] output
성공 시 파싱된 값이 저장될 64비트 부호 없는 정수의 저장소 참조입니다.
반환
성공 시 true를, 실패 시 false를 전달합니다.

ParseInt

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

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

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

ParseInt

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

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

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열 포인터입니다.
[out] output
성공 시 파싱된 값이 저장될 32비트 부호 있는 정수의 저장소 참조입니다.
반환
성공 시 true를, 실패 시 false를 전달합니다.

ParseInt

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

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

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열 포인터입니다.
[out] output
성공 시 파싱된 값이 저장될 16비트 부호 없는 정수의 저장소 참조입니다.
반환
성공 시 true를, 실패 시 false를 전달합니다.

ParseInt

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

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

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열 포인터입니다.
[out] output
성공 시 파싱된 값이 저장될 16비트 부호 있는 정수의 저장소 참조입니다.
반환
성공 시 true를, 실패 시 false를 전달합니다.

ParseInt

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

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

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열 포인터입니다.
[out] output
성공 시 파싱된 값이 저장될 8비트 부호 없는 정수의 저장소 참조입니다.
반환
성공 시 true를, 실패 시 false를 전달합니다.

ParseNodeId

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

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

ParseNodeId() 함수는 16진수 형식으로 지정된 64비트 노드 ID (선행 '0x') 또는 단어 #&39;any' 또는 'all&#39를 허용하며, 이는 Any 노드 ID (0xFFFFFFFFFFFFFFFFFF)를 의미하는 것으로 해석됩니다.

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

Parse서브넷 ID

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

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

세부정보
매개변수
[in] str
파싱할 서브넷 ID를 나타내는 NULL로 끝나는 C 문자열 포인터로, 16진수 형식으로 파싱합니다.
[in,out] subnetId
성공 시 파싱된 서브넷 ID 값이 저장될 16비트 부호 없는 정수의 저장소 참조입니다.
반환
성공 시 true를, 실패 시 false를 전달합니다.

PrintOption도움말

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

지정된 옵션 목록의 도움말 텍스트를 스트림에 출력합니다.

세부정보
매개변수
[in] optSets
출력할 도움말 텍스트가 포함된 OptionSet 구조체 포인터 목록입니다.
[in] s
도움말 텍스트를 출력할 FILE 스트림입니다.

빈 문자열

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

줄바꿈

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

분할

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