Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

nl :: ArgParser

Tóm lược

Bảng kê

OptionArgumentType enum
Xác định các yêu cầu đối số cho một tùy chọn dòng lệnh.

Typedefs

NonOptionArgHandlerFunct )(const char *progName, int argc, char *argv[]) typedef
bool(*
Một hàm có thể được gọi để xử lý mọi đối số dòng lệnh còn lại, không phải tùy chọn.
OptionHandlerFunct )(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) typedef
bool(*
Một hàm có thể được gọi để xử lý một tập hợp các tùy chọn dòng lệnh.

Biến

PrintArgError = DefaultPrintArgError)(const char *msg,...)
void(*
Con trỏ đến hàm được sử dụng để in lỗi xảy ra trong quá trình phân tích cú pháp đối số.
gActiveOptionSets = NULL
Danh sách các OptionSets được chuyển đến lệnh gọi ParseArgs () hiện đang hoạt động.

Chức năng

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
In thông báo lỗi liên quan đến phân tích cú pháp đối số.
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
Phân tích cú pháp một tập hợp các đối số kiểu dòng lệnh, gọi các hàm xử lý để xử lý từng tùy chọn và đối số không phải tùy chọn.
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
Phân tích cú pháp một tập hợp các đối số từ một biến môi trường được đặt tên.
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
Phân tích cú pháp một tập hợp các đối số từ một chuỗi đã cho.
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
Phân tích cú pháp một chuỗi dưới dạng giá trị boolean.
ParseFabricId (const char *str, uint64_t & fabricId, bool allowReserved)
bool
Phân tích cú pháp id vải Weave ở dạng văn bản.
ParseHexString (const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen)
bool
Phân tích cú pháp một chuỗi byte được cho ở dạng hex.
ParseIPAddress (const char *str, IPAddress & output)
bool
Phân tích cú pháp địa chỉ IP ở dạng văn bản.
ParseInt (const char *str, uint64_t & output, int base)
bool
Phân tích cú pháp và cố gắng chuyển đổi một chuỗi thành một số nguyên không dấu 64-bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.
ParseInt (const char *str, uint32_t & output, int base)
bool
Phân tích cú pháp và cố gắng chuyển đổi một chuỗi thành số nguyên không dấu 32 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.
ParseInt (const char *str, int32_t & output, int base)
bool
Phân tích cú pháp và cố gắng chuyển đổi một chuỗi thành số nguyên có dấu 32 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.
ParseInt (const char *str, uint64_t & output)
bool
Phân tích cú pháp và cố gắng chuyển đổi một chuỗi được hiểu là giá trị thập phân thành một số nguyên không dấu 64 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.
ParseInt (const char *str, uint32_t & output)
bool
Phân tích cú pháp và cố gắng chuyển đổi một chuỗi được hiểu là giá trị thập phân thành số nguyên không dấu 32 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.
ParseInt (const char *str, int32_t & output)
bool
Phân tích cú pháp và cố gắng chuyển đổi một chuỗi được hiểu là giá trị thập phân thành số nguyên có dấu 32 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.
ParseInt (const char *str, uint16_t & output)
bool
Phân tích cú pháp và cố gắng chuyển đổi một chuỗi được hiểu là giá trị thập phân thành một số nguyên không dấu 16 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.
ParseInt (const char *str, int16_t & output)
bool
Phân tích cú pháp và cố gắng chuyển đổi một chuỗi được hiểu là giá trị thập phân thành số nguyên có dấu 16 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.
ParseInt (const char *str, uint8_t & output)
bool
Phân tích cú pháp và cố gắng chuyển đổi một chuỗi được hiểu là giá trị thập phân thành số nguyên không dấu 8 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.
ParseNodeId (const char *str, uint64_t & nodeId)
bool
Phân tích cú pháp id nút Weave ở dạng văn bản.
ParseSubnetId (const char *str, uint16_t & subnetId)
bool
Phân tích cú pháp và cố gắng chuyển đổi một chuỗi thành ID mạng con 16-bit không dấu, diễn giải chuỗi dưới dạng hệ thập lục phân.
PrintOptionHelp ( OptionSet *optSets[], FILE *s)
void
In văn bản trợ giúp cho một danh sách các tùy chọn được chỉ định vào một luồng.
PutStringWithBlankLine (FILE *s, const char *str)
void
PutStringWithNewLine (FILE *s, const char *str)
void
SplitArgs (char *argStr, char **& argList, char *initialArg)
int32_t

Các lớp học

nl :: ArgParser :: HelpOptions

OptionSet chung để xử lý các tùy chọn thông tin (trợ giúp, phiên bản).

nl :: ArgParser :: OptionSetBase

Một OptionSet trong đó trình xử lý là một hàm ảo.

Cấu trúc

nl :: ArgParser :: OptionDef

Xác định một tùy chọn dòng lệnh.

nl :: ArgParser :: OptionSet

Xác định một nhóm các tùy chọn dòng lệnh liên quan đến logic và có thể sử dụng lại.

Bảng kê

OptionArgumentType

 OptionArgumentType

Xác định các yêu cầu đối số cho một tùy chọn dòng lệnh.

Typedefs

NonOptionArgHandlerFunct

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

Một hàm có thể được gọi để xử lý mọi đối số dòng lệnh còn lại, không phải tùy chọn.

OptionHandlerFunct

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

Một hàm có thể được gọi để xử lý một tập hợp các tùy chọn dòng lệnh.

Biến

PrintArgError

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

Con trỏ đến hàm được sử dụng để in lỗi xảy ra trong quá trình phân tích cú pháp đối số.

Các ứng dụng nên gọi PrintArgError () để báo cáo lỗi trong các chức năng xử lý đối số tùy chọn và không tùy chọn của chúng, thay vì in trực tiếp tới stdout / stderr.

Mặc định là một con trỏ đến hàm DefaultPrintArgError() .

gActiveOptionSets

OptionSet ** gActiveOptionSets = NULL

Danh sách các OptionSets được chuyển đến lệnh gọi ParseArgs () hiện đang hoạt động.

Giá trị này sẽ là NULL khi không có lệnh gọi nào đến ParseArgs () đang diễn ra.

Chức năng

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 thông báo lỗi liên quan đến phân tích cú pháp đối số.

Hàm mặc định được sử dụng để in thông báo lỗi phát sinh do phân tích cú pháp các đối số.

Chi tiết
Thông số
[in] msg
Tin nhắn sẽ được in.

Các ứng dụng nên gọi thông qua con trỏ hàm PrintArgError, thay vì gọi trực tiếp hàm này.

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
)

Phân tích cú pháp một tập hợp các đối số kiểu dòng lệnh, gọi các hàm xử lý để xử lý từng tùy chọn và đối số không phải tùy chọn.

ParseArgs () nhận một danh sách các đối số ( argv ) và phân tích cú pháp chúng theo một tập hợp các định nghĩa tùy chọn được cung cấp. Hàm hỗ trợ cả tùy chọn dài (opt) và ngắn (-o) và thực hiện cùng một cú pháp tùy chọn như hàm getopt_long (3) của GNU.

Chi tiết
Thông số
[in] progName
Tên của chương trình hoặc ngữ cảnh mà các đối số đang được phân tích cú pháp. Chuỗi này sẽ được sử dụng để đặt trước các thông báo và cảnh báo lỗi.
[in] argc
Số lượng đối số được phân tích cú pháp, cộng với 1.
[in] argv
Một mảng các chuỗi đối số được phân tích cú pháp. Độ dài mảng phải lớn hơn 1 giá trị được chỉ định cho argc và argv [argc] phải được đặt thành NULL. Phân tích cú pháp đối số bắt đầu bằng phần tử mảng thứ hai (argv [1]); phần tử 0 bị bỏ qua.
[in] optSets
Danh sách các con trỏ đến cấu trúc OptionSet xác định các tùy chọn hợp pháp. Danh sách được cung cấp phải được kết thúc bằng NULL.
[in] nonOptArgHandler
Một con trỏ đến một hàm sẽ được gọi sau khi phân tích cú pháp tùy chọn hoàn tất với bất kỳ đối số không phải tùy chọn nào còn lại. Hàm được gọi bất kể có còn bất kỳ đối số nào hay không. Nếu một NULL được truyền ParseArgs() sẽ báo lỗi nếu có bất kỳ đối số không phải tùy chọn nào.
[in] ignoreUnknown
Nếu đúng, hãy im lặng bỏ qua mọi tùy chọn không được công nhận.
Lợi nhuận
true nếu tất cả các tùy chọn và đối số không phải tùy chọn đã được phân tích cú pháp thành công; false nếu một tùy chọn không được công nhận hoặc nếu một trong các hàm xử lý không thành công (tức là trả về false).

Định nghĩa tùy chọn được truyền cho ParseArgs () như là một mảng của OptionSet cấu trúc ( optSets ). Mỗi OptionSet chứa một loạt các định nghĩa tùy chọn và một hàm xử lý. ParseArgs () xử lý các đối số tùy chọn theo thứ tự đã cho, gọi hàm xử lý tương ứng cho mỗi tùy chọn được công nhận. Khi tất cả các tùy chọn đã được phân tích cú pháp, một hàm xử lý không tùy chọn riêng biệt ( nonOptArgHandler ) được gọi một lần để xử lý bất kỳ đối số còn lại nào.

BỘ LỰA CHỌN

Một OptionSet chứa một tập hợp các định nghĩa tùy chọn cùng với một con trỏ đến một hàm xử lý sẽ được gọi khi gặp một trong các tùy chọn liên quan. Bộ tùy chọn cũng chứa văn bản trợ giúp mô tả cú pháp và mục đích của từng tùy chọn (xem TRỢ GIÚP TÙY CHỌN bên dưới). Các bộ tùy chọn được thiết kế để cho phép tạo các bộ sưu tập có thể sử dụng lại các tùy chọn liên quan. Điều này đơn giản hóa nỗ lực cần thiết để duy trì nhiều ứng dụng chấp nhận các tùy chọn tương tự (ví dụ: ứng dụng thử nghiệm).

Có hai mẫu để định nghĩa OptionSetsone có thể khởi tạo một thể hiện của chính cấu trúc OptionSet , ví dụ như một toàn cục tĩnh hoặc lớp conOptionSetBase và cung cấp một phương thức khởi tạo. Cái sau sử dụng một HandleOption() ảo thuần túy để ủy quyền xử lý tùy chọn cho lớp con.

Danh sách các OptionSets được chuyển đến hàm ParseArgs () dưới dạng một mảng con trỏ kết thúc bằng NULL. Vd:

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))
    {
        ...
    }
}

CÁC ĐỊNH NGHĨA LỰA CHỌN

Các tùy chọn được xác định bằng cấu trúc OptionDef . Định nghĩa tùy chọn được tổ chức dưới dạng một mảng các phần tử OptionDef , trong đó mỗi phần tử chứa: tên của tùy chọn, id số nguyên được sử dụng để xác định tùy chọn và liệu tùy chọn có mong muốn / cho phép đối số hay không. Phần cuối của mảng tùy chọn được báo hiệu bằng trường NULL Name. Vd:

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

TÙY CHỌN IDS

Id tùy chọn xác định các tùy chọn đối với mã xử lý chúng (chức năng OptionHandler). Id tùy chọn có liên quan đến OptionSet nơi chúng xuất hiện và do đó có thể được sử dụng lại trên các OptionSets khác nhau (tuy nhiên hãy xem TÙY CHỌN NGẮN HẠN bên dưới). Quy ước chung là bắt đầu đánh số id tùy chọn ở 1000, tuy nhiên bất kỳ số nào> 128 đều có thể được sử dụng. Các tùy chọn bí danh có thể được tạo bằng cách sử dụng cùng một id tùy chọn với các tên tùy chọn khác nhau.

TÙY CHỌN NGẮN

Không giống như getopt_long (3), ParseArgs () không lấy một chuỗi riêng chỉ định danh sách các ký tự tùy chọn ngắn. Thay vào đó, bất kỳ tùy chọn nào có giá trị id nằm trong phạm vi ký tự ASCII đồ họa sẽ cho phép ký tự đó được sử dụng như một tùy chọn ngắn.

ParseArgs () yêu cầu các ký tự tùy chọn ngắn là duy nhất trên tất cả các OptionSets. Do đó, việc sử dụng các tùy chọn ngắn không được khuyến khích đối với bất kỳ Bộ tùy chọn nào được chia sẻ trên các chương trình do cơ hội va chạm đáng kể. Các ký tự tùy chọn ngắn có thể được sử dụng lại trong một OptionSet duy nhất để cho phép tạo các tên tùy chọn dài bí danh.

GIÚP ĐỠ LỰA CHỌN

Mỗi OptionSet chứa một chuỗi OptionHelp mô tả mục đích và cú pháp của các tùy chọn liên quan. Các chuỗi này được sử dụng bởi hàm PrintOptionHelp() để tạo thông tin sử dụng tùy chọn.

Theo quy ước, chuỗi trợ giúp tùy chọn bao gồm một ví dụ cú pháp theo sau bởi mô tả văn bản của tùy chọn. Nếu tùy chọn có phiên bản ngắn hoặc tên bí danh, nó sẽ được đặt trước tên dài chính. Để nhất quán, các dòng cú pháp được thụt lề với 2 khoảng trắng, trong khi các dòng mô tả được thụt vào với 7 khoảng trắng. Một dòng trống duy nhất theo sau mỗi mô tả tùy chọn, bao gồm cả dòng cuối cùng.

Vd:

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

TÙY CHỌN NHÓM TRỢ GIÚP

OptionSets chứa một chuỗi HelpGroupName được sử dụng để nhóm các tùy chọn lại với nhau trong đầu ra trợ giúp. Hàm PrintOptionHelp() sử dụng HelpGroupName làm tiêu đề phần trong đầu ra sử dụng đã tạo. Nếu nhiều OptionSets có cùng HelpGroupName, PrintOptionHelp () sẽ in trợ giúp tùy chọn cho các OptionSets khác nhau cùng nhau dưới tiêu đề phần chung.

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
)

Phân tích cú pháp một tập hợp các đối số từ một biến môi trường được đặt tên.

ParseArgsFromEnvVar () đọc một biến môi trường được đặt tên và chuyển giá trị cho ParseArgsFromString() để phân tích cú pháp. Nếu biến môi trường không được đặt, thì hàm không làm gì cả.

Chi tiết
Thông số
[in] progName
Tên của chương trình hoặc ngữ cảnh mà các đối số đang được phân tích cú pháp. Chuỗi này sẽ được sử dụng để đặt trước các thông báo và cảnh báo lỗi.
[in] varName
Tên của biến môi trường.
[in] optSets
Danh sách các con trỏ đến cấu trúc OptionSet xác định các tùy chọn hợp pháp. Danh sách được cung cấp phải được kết thúc bằng NULL.
[in] nonOptArgHandler
Một con trỏ đến một hàm sẽ được gọi sau khi phân tích cú pháp tùy chọn hoàn tất với bất kỳ đối số không phải tùy chọn nào còn lại. Hàm được gọi bất kể có còn bất kỳ đối số nào hay không. Nếu một NULL được truyền ParseArgs() sẽ báo lỗi nếu có bất kỳ đối số không phải tùy chọn nào.
[in] ignoreUnknown
Nếu đúng, hãy im lặng bỏ qua mọi tùy chọn không được công nhận.
Lợi nhuận
true nếu tất cả các tùy chọn và đối số không phải tùy chọn đã được phân tích cú pháp thành công hoặc nếu biến môi trường được chỉ định không được đặt; false nếu một tùy chọn không được công nhận, nếu một trong các hàm xử lý không thành công (tức là trả về false) hoặc nếu xảy ra lỗi nội bộ.

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
)

Phân tích cú pháp một tập hợp các đối số từ một chuỗi đã cho.

ParseArgsFromString () chia một chuỗi đã cho ( argStr ) thành một tập hợp các đối số và phân tích cú pháp các đối số bằng cách sử dụng hàm ParseArgs ().

Chi tiết
Thông số
[in] progName
Tên của chương trình hoặc ngữ cảnh mà các đối số đang được phân tích cú pháp. Chuỗi này sẽ được sử dụng để đặt trước các thông báo và cảnh báo lỗi.
[in] argStr
Một chuỗi chứa các tùy chọn và đối số được phân tích cú pháp.
[in] optSets
Danh sách các con trỏ đến cấu trúc OptionSet xác định các tùy chọn hợp pháp. Danh sách được cung cấp phải được kết thúc bằng NULL.
[in] nonOptArgHandler
Một con trỏ đến một hàm sẽ được gọi sau khi phân tích cú pháp tùy chọn hoàn tất với bất kỳ đối số không phải tùy chọn nào còn lại. Hàm được gọi bất kể có còn bất kỳ đối số nào hay không. Nếu một NULL được truyền ParseArgs() sẽ báo lỗi nếu có bất kỳ đối số không phải tùy chọn nào.
[in] ignoreUnknown
Nếu đúng, hãy im lặng bỏ qua mọi tùy chọn không được công nhận.
Lợi nhuận
true nếu tất cả các tùy chọn và đối số không phải tùy chọn đã được phân tích cú pháp thành công; false nếu một tùy chọn không được công nhận, nếu một trong các hàm xử lý không thành công (tức là trả về false) hoặc nếu xảy ra lỗi nội bộ.

Cú pháp của các chuỗi đầu vào tương tự như cú pháp lệnh unix shell, nhưng với lược đồ trích dẫn đơn giản hơn. Đặc biệt:

  • Các đối số được phân cách bằng khoảng trắng, trừ khi khoảng trắng được trích dẫn hoặc thoát.
  • Dấu gạch chéo ngược thoát khỏi ký tự sau, khiến ký tự đó được coi như một ký tự bình thường. Dấu gạch chéo ngược chính nó bị loại bỏ.
  • Dấu ngoặc kép đơn hoặc dấu ngoặc kép bắt đầu / kết thúc chuỗi con được trích dẫn. Trong một chuỗi con, các ký tự đặc biệt duy nhất là dấu gạch chéo ngược, thoát khỏi ký tự tiếp theo và dấu ngoặc kép tương ứng. Các ký tự trích dẫn bắt đầu / kết thúc bị loại bỏ.

Vd:

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

Phân tích cú pháp một chuỗi dưới dạng giá trị boolean.

Hàm này chấp nhận các giá trị đầu vào sau (không phân biệt chữ hoa chữ thường): "true", "yes", "t", "y", "1", "false", "no", "f", "n", " 0 ”.

Chi tiết
Thông số
[in] str
Một con trỏ đến chuỗi C được kết thúc bằng NULL biểu thị giá trị cần phân tích cú pháp.
[out] output
Tham chiếu đến lưu trữ cho bool mà giá trị đã phân tích cú pháp sẽ được lưu trữ khi thành công.
Lợi nhuận
đúng trên thành công; nếu không, sai về thất bại.

ParseFainstId

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

Phân tích cú pháp id vải Weave ở dạng văn bản.

Hàm ParseFnaiId () chấp nhận id vải 64-bit được cung cấp ở định dạng hex, có hoặc không có '0x' ở đầu.

Chi tiết
Thông số
[in] str
Một con trỏ đến một chuỗi C được kết thúc bằng NULL chứa id vải để phân tích cú pháp.
[out] output
Tham chiếu đến giá trị uint64_t trong đó giá trị được phân tích cú pháp sẽ được lưu trữ khi thành công.
[in] allowReserved
Nếu đúng, hãy cho phép phân tích cú pháp các id vải trong phạm vi dành riêng.
Lợi nhuận
true nếu giá trị được phân tích cú pháp thành công; false nếu không.

ParseHexString

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

Phân tích cú pháp một chuỗi byte được cho ở dạng hex.

ParseHexString () mong đợi đầu vào ở dạng các cặp chữ số hex (chữ hoa hoặc chữ thường). Các cặp hex có thể được phân tách tùy ý bằng bất kỳ ký tự nào sau đây: dấu hai chấm, dấu chấm phẩy, dấu phẩy, dấu chấm hoặc dấu gạch ngang. Ngoài ra, các ký tự khoảng trắng ở bất kỳ đâu trong chuỗi đầu vào bị bỏ qua.

Chi tiết
Thông số
[in] hexStr
Một con trỏ đến chuỗi để phân tích cú pháp.
[in] strLen
Số ký tự trong hexStr cần phân tích cú pháp.
[in] outBuf
Một con trỏ đến một bộ đệm mà các byte phân tích cú pháp sẽ được lưu trữ.
[in] outBufSize
Kích thước của vùng đệm được trỏ bởi outBuf .
[out] outDataLen
Tham chiếu đến một số nguyên sẽ nhận tổng số byte được phân tích cú pháp. Trong trường hợp outBuf không đủ lớn để chứa số byte đã cho, outDataLen sẽ được đặt thành UINT32_MAX.
Lợi nhuận
true nếu giá trị được phân tích cú pháp thành công; false nếu dữ liệu đầu vào không đúng định dạng hoặc nếu outBuf quá nhỏ.

ParseIPAddress

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

Phân tích cú pháp địa chỉ IP ở dạng văn bản.

Chi tiết
Thông số
[in] str
Một con trỏ đến một chuỗi C được kết thúc bằng NULL có chứa địa chỉ để phân tích cú pháp.
[out] output
Tham chiếu đến đối tượng IPAddress trong đó giá trị đã phân tích cú pháp sẽ được lưu trữ khi thành công.
Lợi nhuận
true nếu giá trị được phân tích cú pháp thành công; false nếu không.

ParseInt

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

Phân tích cú pháp và cố gắng chuyển đổi một chuỗi thành một số nguyên không dấu 64-bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.

Chi tiết
Thông số
[in] str
Một con trỏ đến chuỗi C được kết thúc bằng NULL đại diện cho số nguyên cần phân tích cú pháp.
[out] output
Tham chiếu đến bộ nhớ cho một số nguyên 64-bit không dấu mà giá trị đã phân tích cú pháp sẽ được lưu trữ khi thành công.
[in] base
Cơ sở mà theo đó chuỗi sẽ được diễn giải và phân tích cú pháp. Nếu 0 hoặc 16, chuỗi có thể là hệ thập lục phân và có tiền tố là "0x". Nếu không, số 0 được ngụ ý là 10 trừ khi gặp số 0 đứng đầu, trong đó số 8 được ngụ ý.
Lợi nhuận
đúng trên thành công; ngược lại, sai về thất bại.

ParseInt

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

Phân tích cú pháp và cố gắng chuyển đổi một chuỗi thành số nguyên không dấu 32 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.

Chi tiết
Thông số
[in] str
Một con trỏ đến chuỗi C được kết thúc bằng NULL đại diện cho số nguyên cần phân tích cú pháp.
[out] output
Tham chiếu đến bộ nhớ cho một số nguyên không dấu 32 bit mà giá trị được phân tích cú pháp sẽ được lưu trữ khi thành công.
[in] base
Cơ sở mà theo đó chuỗi sẽ được diễn giải và phân tích cú pháp. Nếu 0 hoặc 16, chuỗi có thể là hệ thập lục phân và có tiền tố là "0x". Nếu không, số 0 được ngụ ý là 10 trừ khi gặp số 0 đứng đầu, trong đó số 8 được ngụ ý.
Lợi nhuận
đúng trên thành công; nếu không, sai về thất bại.

ParseInt

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

Phân tích cú pháp và cố gắng chuyển đổi một chuỗi thành số nguyên có dấu 32 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.

Chi tiết
Thông số
[in] str
Một con trỏ đến chuỗi C được kết thúc bằng NULL đại diện cho số nguyên cần phân tích cú pháp.
[out] output
Tham chiếu đến bộ nhớ cho số nguyên có dấu 32 bit mà giá trị được phân tích cú pháp sẽ được lưu trữ khi thành công.
[in] base
Cơ sở mà theo đó chuỗi sẽ được diễn giải và phân tích cú pháp. Nếu 0 hoặc 16, chuỗi có thể là hệ thập lục phân và có tiền tố là "0x". Nếu không, số 0 được ngụ ý là 10 trừ khi gặp số 0 đứng đầu trong đó hàm ý 8.
Lợi nhuận
đúng trên thành công; nếu không, sai về thất bại.

ParseInt

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

Phân tích cú pháp và cố gắng chuyển đổi một chuỗi được hiểu là giá trị thập phân thành một số nguyên không dấu 64 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.

Chi tiết
Thông số
[in] str
Một con trỏ đến chuỗi C được kết thúc bằng NULL đại diện cho số nguyên cần phân tích cú pháp.
[out] output
Tham chiếu đến bộ nhớ cho số nguyên không dấu 64 bit mà giá trị đã phân tích cú pháp sẽ được lưu trữ khi thành công.
Lợi nhuận
đúng trên thành công; nếu không, sai về thất bại.

ParseInt

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

Phân tích cú pháp và cố gắng chuyển đổi một chuỗi được hiểu là giá trị thập phân thành số nguyên không dấu 32 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.

Chi tiết
Thông số
[in] str
Một con trỏ đến chuỗi C được kết thúc bằng NULL đại diện cho số nguyên cần phân tích cú pháp.
[out] output
Tham chiếu đến lưu trữ cho một số nguyên không dấu 32 bit mà giá trị đã phân tích cú pháp sẽ được lưu trữ khi thành công.
Lợi nhuận
đúng trên thành công; nếu không, sai về thất bại.

ParseInt

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

Phân tích cú pháp và cố gắng chuyển đổi một chuỗi được hiểu là giá trị thập phân thành số nguyên có dấu 32 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.

Chi tiết
Thông số
[in] str
Một con trỏ đến chuỗi C được kết thúc bằng NULL đại diện cho số nguyên cần phân tích cú pháp.
[out] output
Tham chiếu đến bộ nhớ cho số nguyên có dấu 32 bit mà giá trị được phân tích cú pháp sẽ được lưu trữ khi thành công.
Lợi nhuận
đúng trên thành công; nếu không, sai về thất bại.

ParseInt

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

Phân tích cú pháp và cố gắng chuyển đổi một chuỗi được hiểu là giá trị thập phân thành một số nguyên không dấu 16 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.

Chi tiết
Thông số
[in] str
Một con trỏ đến chuỗi C được kết thúc bằng NULL đại diện cho số nguyên cần phân tích cú pháp.
[out] output
Tham chiếu đến bộ nhớ cho một số nguyên không dấu 16 bit mà giá trị được phân tích cú pháp sẽ được lưu trữ khi thành công.
Lợi nhuận
đúng trên thành công; nếu không, sai về thất bại.

ParseInt

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

Phân tích cú pháp và cố gắng chuyển đổi một chuỗi được hiểu là giá trị thập phân thành số nguyên có dấu 16 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.

Chi tiết
Thông số
[in] str
Một con trỏ đến chuỗi C được kết thúc bằng NULL đại diện cho số nguyên cần phân tích cú pháp.
[out] output
Tham chiếu đến bộ nhớ cho số nguyên có dấu 16 bit mà giá trị được phân tích cú pháp sẽ được lưu trữ khi thành công.
Lợi nhuận
đúng trên thành công; nếu không, sai về thất bại.

ParseInt

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

Phân tích cú pháp và cố gắng chuyển đổi một chuỗi được hiểu là giá trị thập phân thành số nguyên không dấu 8 bit, áp dụng cách diễn giải thích hợp dựa trên tham số cơ sở.

Chi tiết
Thông số
[in] str
Một con trỏ đến chuỗi C được kết thúc bằng NULL đại diện cho số nguyên cần phân tích cú pháp.
[out] output
Tham chiếu đến bộ nhớ cho một số nguyên không dấu 8 bit mà giá trị được phân tích cú pháp sẽ được lưu trữ khi thành công.
Lợi nhuận
đúng trên thành công; nếu không, sai về thất bại.

ParseNodeId

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

Phân tích cú pháp id nút Weave ở dạng văn bản.

Hàm ParseNodeId () chấp nhận id nút 64 bit được cung cấp ở định dạng hex (có hoặc không có '0x' ở đầu) hoặc các từ 'bất kỳ' hoặc 'tất cả' được hiểu là có nghĩa là id nút bất kỳ (0xFFFFFFFFFFFFFFFF) .

Chi tiết
Thông số
[in] str
Một con trỏ đến chuỗi C được kết thúc bằng NULL chứa id nút để phân tích cú pháp.
[out] output
Tham chiếu đến giá trị uint64_t trong đó giá trị được phân tích cú pháp sẽ được lưu trữ khi thành công.
Lợi nhuận
true nếu giá trị được phân tích cú pháp thành công; false nếu không.

ParseSubnetId

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

Phân tích cú pháp và cố gắng chuyển đổi một chuỗi thành ID mạng con 16-bit không dấu, diễn giải chuỗi dưới dạng hệ thập lục phân.

Chi tiết
Thông số
[in] str
Một con trỏ đến chuỗi C được kết thúc bằng NULL đại diện cho ID mạng con, được định dạng là hệ thập lục phân, để phân tích cú pháp.
[in,out] subnetId
Tham chiếu đến bộ nhớ cho một số nguyên không dấu 16 bit mà giá trị ID mạng con được phân tích cú pháp sẽ được lưu trữ khi thành công.
Lợi nhuận
đúng trên thành công; ngược lại, sai về thất bại.

PrintOptionHelp

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

In văn bản trợ giúp cho một danh sách các tùy chọn được chỉ định vào một luồng.

Chi tiết
Thông số
[in] optSets
Danh sách các con trỏ đến các cấu trúc OptionSet có chứa văn bản trợ giúp để in.
[in] s
Luồng FILE mà văn bản trợ giúp sẽ được in.

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
)