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
รายการ OptionSets ที่ส่งไปยังการเรียกใช้ ParseArgs() ที่ทำงานอยู่ในปัจจุบัน

ฟังก์ชัน

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
แยกวิเคราะห์รหัสผ้าทอในรูปแบบข้อความ
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
แยกวิเคราะห์และพยายามแปลงสตริงที่ตีความเป็นค่าทศนิยมให้เป็นจำนวนเต็มที่ไม่มีเครื่องหมาย 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 ในรูปแบบข้อความ
ParseSubnetId(const char *str, uint16_t & subnetId)
bool
แยกวิเคราะห์และพยายามแปลงสตริงเป็นรหัสซับเน็ตแบบไม่ลงชื่อเข้าใช้ 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

ตัวชี้ไปยังฟังก์ชันที่ใช้ในการพิมพ์ข้อผิดพลาดที่เกิดขึ้นระหว่างการแยกวิเคราะห์อาร์กิวเมนต์

แอปพลิเคชันควรเรียกใช้ PrintArgError() เพื่อรายงานข้อผิดพลาดในตัวเลือกและฟังก์ชันการจัดการอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือก แทนการพิมพ์ไปยัง stdout/stderr โดยตรง

ค่าเริ่มต้นจะเป็นตัวชี้ไปยังฟังก์ชัน DefaultPrintArgError()

gActiveOptionSets

OptionSet ** gActiveOptionSets = NULL

รายการ OptionSets ที่ส่งไปยังการเรียกใช้ ParseArgs() ที่ทำงานอยู่ในปัจจุบัน

ค่านี้จะเป็น NULL เมื่อไม่มีการเรียก ParseArgs()

ฟังก์ชัน

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
อาร์เรย์ของสตริงอาร์กิวเมนต์ที่จะแยกวิเคราะห์ ความยาวของอาร์เรย์ต้องมากกว่า 1 ค่าที่ระบุสำหรับ ARPC และต้องตั้งค่า ARPV[ARPC] เป็น NULL การแยกวิเคราะห์อาร์กิวเมนต์เริ่มต้นด้วยองค์ประกอบอาร์เรย์ second (argv[1]) ระบบจะไม่สนใจองค์ประกอบ 0
[in] optSets
รายการตัวชี้ไปยังโครงสร้าง OptionSet ที่กำหนดตัวเลือกทางกฎหมาย ต้องสิ้นสุดรายการที่ระบุด้วยค่าว่าง
[in] nonOptArgHandler
ตัวชี้ไปยังฟังก์ชันที่จะถูกเรียกเมื่อการแยกวิเคราะห์ตัวเลือกเสร็จสมบูรณ์ พร้อมกับอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกที่เหลืออยู่ ระบบจะเรียกใช้ฟังก์ชันนี้ไม่ว่าจะมีอาร์กิวเมนต์หรือไม่ก็ตาม หากส่งค่า NULL ParseArgs() จะรายงานข้อผิดพลาดหากมีอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือก
[in] ignoreUnknown
หากเป็น "จริง" ระบบจะไม่สนใจตัวเลือกที่ไม่รู้จัก
การคืนสินค้า
true หากแยกวิเคราะห์ตัวเลือกและอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกทั้งหมดสำเร็จ false หากไม่รู้จักตัวเลือกใดหรือหากฟังก์ชันของตัวแฮนเดิลทำงานล้มเหลว (กล่าวคือ แสดงค่าเท็จ)

ระบบจะส่งคำนิยามตัวเลือกไปยัง ParseArgs() เป็นอาร์เรย์ของโครงสร้าง OptionSet (optSets) OptionSet แต่ละรายการจะมีอาร์เรย์ของคำจำกัดความตัวเลือกและฟังก์ชันของเครื่องจัดการ ParseArgs() จะประมวลผลอาร์กิวเมนต์ตัวเลือกตามลำดับที่ระบุ โดยเรียกใช้ฟังก์ชันของตัวแฮนเดิลที่เกี่ยวข้องสำหรับแต่ละตัวเลือกที่รู้จัก เมื่อแยกวิเคราะห์ตัวเลือกทั้งหมดแล้ว จะมีการเรียกใช้ฟังก์ชันตัวแฮนเดิลที่ไม่ใช่ตัวเลือก (nonOptArgHandler) แยกต่างหาก 1 ครั้งเพื่อประมวลผลอาร์กิวเมนต์ที่เหลือ

ชุดตัวเลือก

OptionSet ประกอบด้วยชุดคำจำกัดความของตัวเลือก พร้อมด้วยตัวชี้ไปยังฟังก์ชันของเครื่องจัดการที่จะถูกเรียกเมื่อพบหนึ่งในตัวเลือกที่เชื่อมโยงกัน นอกจากนี้ ชุดตัวเลือกยังมีข้อความช่วยเหลือที่อธิบายไวยากรณ์และวัตถุประสงค์ของแต่ละตัวเลือก (ดู OPTION HELP ด้านล่าง) ชุดตัวเลือกได้รับการออกแบบมาเพื่ออนุญาตการสร้างคอลเล็กชันตัวเลือกที่เกี่ยวข้องซึ่งสามารถนำมาใช้ซ้ำได้ ซึ่งช่วยลดความยุ่งยากในการจัดการแอปพลิเคชันหลายรายการที่ยอมรับตัวเลือกที่คล้ายกัน (เช่น แอปพลิเคชันทดสอบ)

การกำหนด OptionSetsone มีอยู่ 2 รูปแบบด้วยกันที่สามารถทำให้อินสแตนซ์ของโครงสร้าง OptionSet เริ่มต้นได้ เช่น เป็น OptionSetBase หรือคลาสย่อยแบบคงที่และระบุตัวสร้าง ส่วนหลังจะใช้ฟังก์ชัน HandleOption() เสมือนล้วนเพื่อมอบสิทธิ์การจัดการตัวเลือกไปยังคลาสย่อย

ระบบจะส่งรายการของ OptionSets ไปยังฟังก์ชัน ParseArgs() เป็นอาร์เรย์ของตัวชี้ที่มีค่าเป็น NULL 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 โดยที่องค์ประกอบแต่ละรายการประกอบด้วยชื่อตัวเลือก รหัสจำนวนเต็มที่ใช้ระบุตัวเลือก และระบุว่าตัวเลือกนั้นคาดหวัง/อนุญาตอาร์กิวเมนต์หรือไม่ จุดสิ้นสุดของอาร์เรย์ตัวเลือกจะได้รับสัญญาณโดยช่องชื่อ Null 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 }
};

รหัสตัวเลือก

รหัสตัวเลือกระบุตัวเลือกสำหรับโค้ดที่จัดการตัวเลือกเหล่านั้น (ฟังก์ชัน OptionHandler) รหัสตัวเลือกจะสัมพันธ์กับ OptionSet ที่ปรากฏ ดังนั้นจึงสามารถนำไปใช้ซ้ำในชุด Optionต่างๆ ได้ (แต่โปรดดูตัวเลือก Shorts ด้านล่าง) โดยทั่วไปคือการเริ่มหมายเลขรหัสตัวเลือกที่มีเลข 1000 แต่ตัวเลขใดก็ได้ > 128 ได้ คุณสร้างตัวเลือกชื่อแทนได้โดยใช้รหัสตัวเลือกเดียวกันแต่มีชื่อตัวเลือกต่างกัน

ตัวเลือก Shorts

ParseArgs() ไม่ได้ใช้สตริงแยกต่างหากในการระบุรายการอักขระตัวเลือกแบบสั้น ซึ่งแตกต่างจาก getopt_long(3) แต่ตัวเลือกใดๆ ที่มีค่ารหัสอยู่ในช่วงอักขระ ASCII แบบกราฟิก จะทำให้สามารถใช้อักขระนั้นเป็นตัวเลือกแบบสั้นได้

ParseArgs() กำหนดให้อักขระตัวเลือกสั้นๆ ไม่ซ้ำกันใน OptionSets ทั้งหมด ด้วยเหตุนี้ จึงไม่แนะนำให้ใช้ตัวเลือกสั้นๆ สำหรับชุดตัวเลือกที่มีการใช้งานร่วมกันในโปรแกรมต่างๆ เนื่องจากมีโอกาสสูงที่จะเกิดการชนกัน อักขระตัวเลือกแบบสั้นสามารถใช้ซ้ำภายใน OptionSet เดียวเพื่อสร้างชื่อตัวเลือกแบบยาวของชื่อแทนได้

ความช่วยเหลือเกี่ยวกับตัวเลือก

OptionSet แต่ละรายการจะมีสตริง OptionHelp ที่อธิบายวัตถุประสงค์และไวยากรณ์ของตัวเลือกที่เกี่ยวข้อง ฟังก์ชัน PrintOptionHelp() จะใช้สตริงเหล่านี้เพื่อสร้างข้อมูลการใช้งานตัวเลือก

ตามกฎแล้ว สตริงความช่วยเหลือเกี่ยวกับตัวเลือกจะประกอบด้วยตัวอย่างไวยากรณ์ซึ่งตามมาด้วยคำอธิบายที่เป็นข้อความของตัวเลือก หากตัวเลือกมีชื่อย่อหรือชื่อชื่อแทน ตัวเลือกดังกล่าวจะมีให้ก่อนชื่อแบบยาวหลัก เพื่อความสอดคล้อง บรรทัดไวยากรณ์จะมีการเยื้องโดยเว้นวรรค 2 ช่อง ส่วนบรรทัดรายละเอียดจะเยื้อง 7 ช่อง บรรทัดว่าง 1 บรรทัดจะตามหลังคำอธิบายตัวเลือกแต่ละรายการ ซึ่งรวมถึงบรรทัดสุดท้ายด้วย

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 เป็นชื่อส่วนในเอาต์พุตการใช้งานที่สร้างขึ้น หาก OptionSets หลายรายการมี HelpGroupName เดียวกัน PrintOptionHelp() จะพิมพ์ความช่วยเหลือสำหรับ OptionSets ที่ต่างกันพร้อมกันภายใต้ชื่อส่วนทั่วไป

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 ที่กำหนดตัวเลือกทางกฎหมาย ต้องสิ้นสุดรายการที่ระบุด้วยค่าว่าง
[in] nonOptArgHandler
ตัวชี้ไปยังฟังก์ชันที่จะถูกเรียกเมื่อการแยกวิเคราะห์ตัวเลือกเสร็จสมบูรณ์ พร้อมกับอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกที่เหลืออยู่ ระบบจะเรียกใช้ฟังก์ชันนี้ไม่ว่าจะมีอาร์กิวเมนต์หรือไม่ก็ตาม หากส่งค่า NULL ParseArgs() จะรายงานข้อผิดพลาดหากมีอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือก
[in] ignoreUnknown
หากเป็น "จริง" ระบบจะไม่สนใจตัวเลือกที่ไม่รู้จัก
การคืนสินค้า
true หากแยกวิเคราะห์ตัวเลือกและอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกทั้งหมดสำเร็จ หรือไม่ได้ตั้งค่าตัวแปรสภาพแวดล้อมที่ระบุ 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 ที่กำหนดตัวเลือกทางกฎหมาย ต้องสิ้นสุดรายการที่ระบุด้วยค่าว่าง
[in] nonOptArgHandler
ตัวชี้ไปยังฟังก์ชันที่จะถูกเรียกเมื่อการแยกวิเคราะห์ตัวเลือกเสร็จสมบูรณ์ พร้อมกับอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกที่เหลืออยู่ ระบบจะเรียกใช้ฟังก์ชันนี้ไม่ว่าจะมีอาร์กิวเมนต์หรือไม่ก็ตาม หากส่งค่า NULL ParseArgs() จะรายงานข้อผิดพลาดหากมีอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือก
[in] ignoreUnknown
หากเป็น "จริง" ระบบจะไม่สนใจตัวเลือกที่ไม่รู้จัก
การคืนสินค้า
true หากแยกวิเคราะห์ตัวเลือกและอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกทั้งหมดสำเร็จ false หากไม่ทราบตัวเลือก หากฟังก์ชันของตัวแฮนเดิลล้มเหลว (แสดงค่าเท็จ) หรือหากเกิดข้อผิดพลาดภายใน

ไวยากรณ์ของสตริงอินพุตคล้ายกับไวยากรณ์คำสั่ง Shell แบบ Unix แต่มีรูปแบบการอ้างอิงที่เรียบง่าย กล่าวอย่างเจาะจงคือ

  • อาร์กิวเมนต์จะคั่นด้วยช่องว่าง ยกเว้นในกรณีที่มีการยกข้อความมาหรือแบบ Escape
  • แบ็กสแลชจะหลบหนีอักขระต่อไปนี้ ทำให้ระบบถือเป็นอักขระปกติ แบ็กสแลชจะถูกตัดออก
  • สตริงย่อยที่มีเครื่องหมายอัญประกาศเดี่ยวหรือคู่ ภายในสตริงย่อย จะมีเฉพาะสัญลักษณ์พิเศษเป็นแบ็กสแลช ซึ่งจะหลีกอักขระถัดไป และเครื่องหมายคำพูดปิดที่เกี่ยวข้อง อักขระข้อความที่ยกมาเริ่มต้น/สิ้นสุดถูกตัดออก

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
ตัวชี้ไปยังสตริง C ที่มีการสิ้นสุดเป็นค่าว่างซึ่งแสดงถึงค่าที่จะแยกวิเคราะห์
[out] output
การอ้างอิงไปยังพื้นที่เก็บข้อมูลสำหรับบูลีนซึ่งจะเก็บค่าที่แยกวิเคราะห์ไว้เมื่อสำเร็จ
การคืนสินค้า
เป็นจริงเมื่อประสบความสำเร็จ ไม่เช่นนั้นให้เป็นเท็จเมื่อล้มเหลว

ParseFabricId

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

แยกวิเคราะห์รหัสผ้าทอในรูปแบบข้อความ

ฟังก์ชัน ParseFabricId() ยอมรับรหัส Fabric 64 บิตที่ระบุในรูปแบบเลขฐาน 16 โดยมีหรือไม่มี "0x" นำหน้า

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีค่าเป็น NULL ซึ่งมีรหัส Fabric ที่จะแยกวิเคราะห์
[out] output
การอ้างอิง uint64_t lvalue ซึ่งระบบจะจัดเก็บค่าที่แยกวิเคราะห์ไว้เมื่อเสร็จสมบูรณ์
[in] allowReserved
หากเป็นจริง อนุญาตให้มีการแยกวิเคราะห์รหัสผ้าในช่วงที่สงวนไว้
การคืนสินค้า
true หากมีการแยกวิเคราะห์ค่าสำเร็จ "เท็จ" หากไม่

ParseHexString

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

แยกวิเคราะห์สตริงของไบต์ที่ให้ไว้ในรูปแบบเลขฐาน 16

ParseHexString() คาดหวังว่าอินพุตจะอยู่ในรูปแบบของเลขฐานสิบหก (ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก) สามารถแยกคู่เลขฐานสิบหกโดยใช้อักขระใดก็ได้ต่อไปนี้: โคลอน เซมิโคลอน เครื่องหมายจุลภาค จุด หรือขีดกลาง นอกจากนี้ ระบบจะไม่สนใจอักขระช่องว่างที่ใดก็ได้ในสตริงอินพุต

รายละเอียด
พารามิเตอร์
[in] hexStr
ตัวชี้ไปยังสตริงที่จะแยกวิเคราะห์
[in] strLen
จำนวนอักขระใน hexStr ที่จะแยกวิเคราะห์
[in] outBuf
ตัวชี้ไปยังบัฟเฟอร์ที่จะจัดเก็บไบต์การแยกวิเคราะห์
[in] outBufSize
ขนาดของบัฟเฟอร์ชี้ไปที่ outBuf
[out] outDataLen
การอ้างอิงจำนวนเต็มที่จะรับจำนวนไบต์ทั้งหมดที่แยกวิเคราะห์แล้ว ในกรณีที่ outBuf มีขนาดใหญ่ไม่พอที่จะรองรับจำนวนไบต์ที่ระบุ ระบบจะตั้งค่า outDataLen เป็น UINT32_MAX
การคืนสินค้า
true หากมีการแยกวิเคราะห์ค่าสำเร็จ false หากข้อมูลอินพุตผิดรูปแบบหรือ outBuf มีขนาดเล็กเกินไป

ParseIPAddress

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

แยกวิเคราะห์ที่อยู่ IP ในรูปแบบข้อความ

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีตำแหน่งสิ้นสุด NULL ซึ่งมีที่อยู่ที่จะแยกวิเคราะห์
[out] output
การอ้างอิงออบเจ็กต์ IPAddress ซึ่งจัดเก็บค่าที่แยกวิเคราะห์ไว้สำเร็จ
การคืนสินค้า
true หากมีการแยกวิเคราะห์ค่าสำเร็จ "เท็จ" หากไม่

ParseInt

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

แยกวิเคราะห์และพยายามแปลงสตริงเป็นจำนวนเต็ม 64 บิตที่ไม่มีเครื่องหมาย โดยใช้การตีความที่เหมาะสมตามพารามิเตอร์พื้นฐาน

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีการสิ้นสุดเป็นค่าว่างซึ่งแสดงถึงจำนวนเต็มที่จะแยกวิเคราะห์
[out] output
การอ้างอิงไปยังพื้นที่เก็บข้อมูลสำหรับจำนวนเต็ม 64 บิตที่ไม่มีเครื่องหมายซึ่งจัดเก็บค่าที่แยกวิเคราะห์สำเร็จแล้ว
[in] base
ฐานที่ควรใช้การแปลและแยกวิเคราะห์สตริง หาก 0 หรือ 16 สตริงอาจเป็นเลขฐานสิบหกและขึ้นต้นด้วย "0x" มิฉะนั้น 0 หมายถึง 10 เว้นแต่จะมีเครื่องหมาย 0 นำหน้า ซึ่งแสดงถึง 8
การคืนสินค้า
เป็นจริงเมื่อประสบความสำเร็จ ไม่เช่นนั้นให้เป็นเท็จเมื่อล้มเหลว

ParseInt

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

แยกวิเคราะห์และพยายามแปลงสตริงเป็นจำนวนเต็ม 32 บิตที่ไม่มีเครื่องหมาย โดยใช้การตีความที่เหมาะสมตามพารามิเตอร์พื้นฐาน

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีการสิ้นสุดเป็นค่าว่างซึ่งแสดงถึงจำนวนเต็มที่จะแยกวิเคราะห์
[out] output
การอ้างอิงไปยังพื้นที่เก็บข้อมูลสำหรับจำนวนเต็ม 32 บิตที่ไม่มีเครื่องหมาย ซึ่งจัดเก็บค่าที่แยกวิเคราะห์สำเร็จแล้ว
[in] base
ฐานที่ควรใช้การแปลและแยกวิเคราะห์สตริง หาก 0 หรือ 16 สตริงอาจเป็นเลขฐานสิบหกและขึ้นต้นด้วย "0x" มิฉะนั้น 0 หมายถึง 10 เว้นแต่จะมีเครื่องหมาย 0 นำหน้า ซึ่งแสดงถึง 8
การคืนสินค้า
เป็นจริงเมื่อประสบความสำเร็จ ไม่เช่นนั้นให้เป็นเท็จเมื่อล้มเหลว

ParseInt

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

แยกวิเคราะห์และพยายามแปลงสตริงเป็นจำนวนเต็มแบบมีเครื่องหมาย 32 บิตและใช้การตีความที่เหมาะสมตามพารามิเตอร์พื้นฐาน

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีการสิ้นสุดเป็นค่าว่างซึ่งแสดงถึงจำนวนเต็มที่จะแยกวิเคราะห์
[out] output
การอ้างอิงไปยังพื้นที่เก็บข้อมูลสำหรับจำนวนเต็ม 32 บิตที่มีลายเซ็น ซึ่งระบบจะจัดเก็บค่าที่แยกวิเคราะห์ไว้เมื่อประมวลผลสำเร็จ
[in] base
ฐานที่ควรใช้การแปลและแยกวิเคราะห์สตริง หาก 0 หรือ 16 สตริงอาจเป็นเลขฐานสิบหกและขึ้นต้นด้วย "0x" มิฉะนั้น 0 หมายถึง 10 เว้นแต่จะมีเครื่องหมาย 0 นำหน้า ซึ่งแสดงถึง 8
การคืนสินค้า
เป็นจริงเมื่อประสบความสำเร็จ ไม่เช่นนั้นให้เป็นเท็จเมื่อล้มเหลว

ParseInt

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

แยกวิเคราะห์และพยายามแปลงสตริงที่ตีความเป็นค่าทศนิยมให้เป็นจำนวนเต็มที่ไม่มีเครื่องหมาย 64 บิต โดยใช้การตีความที่เหมาะสมตามพารามิเตอร์พื้นฐาน

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีการสิ้นสุดเป็นค่าว่างซึ่งแสดงถึงจำนวนเต็มที่จะแยกวิเคราะห์
[out] output
การอ้างอิงไปยังพื้นที่เก็บข้อมูลสำหรับจำนวนเต็ม 64 บิตที่ไม่มีเครื่องหมายซึ่งจัดเก็บค่าที่แยกวิเคราะห์สำเร็จแล้ว
การคืนสินค้า
เป็นจริงเมื่อประสบความสำเร็จ ไม่เช่นนั้นให้เป็นเท็จเมื่อล้มเหลว

ParseInt

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

แยกวิเคราะห์และพยายามแปลงสตริงที่ตีความเป็นค่าทศนิยมให้เป็นจำนวนเต็มที่ไม่มีเครื่องหมาย 32 บิต โดยใช้การตีความที่เหมาะสมตามพารามิเตอร์พื้นฐาน

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีการสิ้นสุดเป็นค่าว่างซึ่งแสดงถึงจำนวนเต็มที่จะแยกวิเคราะห์
[out] output
การอ้างอิงไปยังพื้นที่เก็บข้อมูลสำหรับจำนวนเต็ม 32 บิตที่ไม่มีเครื่องหมาย ซึ่งจัดเก็บค่าที่แยกวิเคราะห์สำเร็จแล้ว
การคืนสินค้า
เป็นจริงเมื่อประสบความสำเร็จ ไม่เช่นนั้นให้เป็นเท็จเมื่อล้มเหลว

ParseInt

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

แยกวิเคราะห์และพยายามแปลงสตริงที่ตีความเป็นค่าทศนิยมให้เป็นจำนวนเต็มแบบมีเครื่องหมาย 32 บิตและใช้การตีความที่เหมาะสมตามพารามิเตอร์พื้นฐาน

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีการสิ้นสุดเป็นค่าว่างซึ่งแสดงถึงจำนวนเต็มที่จะแยกวิเคราะห์
[out] output
การอ้างอิงไปยังพื้นที่เก็บข้อมูลสำหรับจำนวนเต็ม 32 บิตที่มีลายเซ็น ซึ่งระบบจะจัดเก็บค่าที่แยกวิเคราะห์ไว้เมื่อประมวลผลสำเร็จ
การคืนสินค้า
เป็นจริงเมื่อประสบความสำเร็จ ไม่เช่นนั้นให้เป็นเท็จเมื่อล้มเหลว

ParseInt

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

แยกวิเคราะห์และพยายามแปลงสตริงที่ตีความเป็นค่าทศนิยมให้เป็นจำนวนเต็มที่ไม่มีเครื่องหมาย 16 บิต โดยใช้การตีความที่เหมาะสมตามพารามิเตอร์พื้นฐาน

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีการสิ้นสุดเป็นค่าว่างซึ่งแสดงถึงจำนวนเต็มที่จะแยกวิเคราะห์
[out] output
การอ้างอิงไปยังพื้นที่เก็บข้อมูลสำหรับจำนวนเต็ม 16 บิตที่ไม่มีเครื่องหมาย ซึ่งจัดเก็บค่าที่แยกวิเคราะห์สำเร็จแล้ว
การคืนสินค้า
เป็นจริงเมื่อประสบความสำเร็จ ไม่เช่นนั้นให้เป็นเท็จเมื่อล้มเหลว

ParseInt

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

แยกวิเคราะห์และพยายามแปลงสตริงที่ตีความเป็นค่าทศนิยมให้เป็นจำนวนเต็มแบบมีเครื่องหมาย 16 บิตและใช้การตีความที่เหมาะสมตามพารามิเตอร์พื้นฐาน

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีการสิ้นสุดเป็นค่าว่างซึ่งแสดงถึงจำนวนเต็มที่จะแยกวิเคราะห์
[out] output
การอ้างอิงไปยังพื้นที่เก็บข้อมูลสำหรับจำนวนเต็ม 16 บิตที่มีลายเซ็น ซึ่งระบบจะจัดเก็บค่าที่แยกวิเคราะห์ไว้เมื่อประมวลผลสำเร็จ
การคืนสินค้า
เป็นจริงเมื่อประสบความสำเร็จ ไม่เช่นนั้นให้เป็นเท็จเมื่อล้มเหลว

ParseInt

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

แยกวิเคราะห์และพยายามแปลงสตริงที่ตีความเป็นค่าทศนิยมให้เป็นจำนวนเต็มที่ไม่มีเครื่องหมาย 8 บิต โดยใช้การตีความที่เหมาะสมตามพารามิเตอร์พื้นฐาน

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีการสิ้นสุดเป็นค่าว่างซึ่งแสดงถึงจำนวนเต็มที่จะแยกวิเคราะห์
[out] output
การอ้างอิงไปยังพื้นที่เก็บข้อมูลสำหรับจำนวนเต็ม 8 บิตที่ไม่มีเครื่องหมาย ซึ่งจัดเก็บค่าที่แยกวิเคราะห์ไว้เมื่อเสร็จสมบูรณ์
การคืนสินค้า
เป็นจริงเมื่อประสบความสำเร็จ ไม่เช่นนั้นให้เป็นเท็จเมื่อล้มเหลว

ParseNodeId

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

แยกวิเคราะห์รหัสโหนด Weave ในรูปแบบข้อความ

ฟังก์ชัน ParseNodeId() ยอมรับรหัสโหนด 64 บิตที่ระบุในรูปแบบเลขฐาน 16 (มีหรือไม่มี "0x" นำหน้า) หรือคำว่า "any" หรือ "ทั้งหมด" ซึ่งจะตีความว่าหมายถึงรหัสโหนดใดก็ได้ (0xFFFFFFFFFFFFFF)

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีการสิ้นสุดเป็นค่าว่าง ซึ่งมีรหัสโหนดที่จะแยกวิเคราะห์
[out] output
การอ้างอิง uint64_t lvalue ซึ่งระบบจะจัดเก็บค่าที่แยกวิเคราะห์ไว้เมื่อเสร็จสมบูรณ์
การคืนสินค้า
true หากมีการแยกวิเคราะห์ค่าสำเร็จ "เท็จ" หากไม่

ParseSubnetId

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

แยกวิเคราะห์และพยายามแปลงสตริงเป็นรหัสซับเน็ตแบบไม่ลงชื่อเข้าใช้ 16 บิต โดยแปลสตริงเป็นเลขฐานสิบหก

รายละเอียด
พารามิเตอร์
[in] str
ตัวชี้ไปยังสตริง C ที่มีค่าเป็น NULL ซึ่งมีค่าเป็น NULL แทนรหัสซับเน็ต ซึ่งอยู่ในรูปแบบเลขฐาน 16 เพื่อแยกวิเคราะห์
[in,out] subnetId
การอ้างอิงไปยังพื้นที่เก็บข้อมูลสำหรับจำนวนเต็ม 16 บิตที่ไม่มีการรับรอง ซึ่งระบบจะจัดเก็บค่ารหัสซับเน็ตที่แยกวิเคราะห์ไว้เมื่อสำเร็จ
การคืนสินค้า
เป็นจริงเมื่อประสบความสำเร็จ ไม่เช่นนั้นให้เป็นเท็จเมื่อล้มเหลว

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
)