nl:: ArgParser
Tóm tắt
Liệt kê |
|
---|---|
OptionArgumentType
|
enum Xác định các yêu cầu đối với đối số cho một tuỳ chọn dòng lệnh. |
Typedef |
|
---|---|
NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[])
|
typedefbool(*
Một hàm có thể được gọi để xử lý mọi đối số dòng lệnh không tuỳ chọn còn lại. |
OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg)
|
typedefbool(*
Hàm có thể được gọi để xử lý một tập hợp các tuỳ chọn dòng lệnh. |
Biến |
|
---|---|
PrintArgError = DefaultPrintArgError)(const char *msg,...)
|
void(*
Con trỏ đến hàm dùng để in các lỗi xảy ra trong quá trình phân tích cú pháp đối số.
|
gActiveOptionSets = NULL
|
OptionSet **
Danh sách OptionSets được chuyển đến lệnh gọi ParseArgs() hiện đang hoạt động.
|
Hàm |
|
---|---|
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 việc 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 tuỳ chọn và đối số không có tuỳ 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 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 mã nhận dạng 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 cho sẵn ở 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 số nguyên 64 bit chưa ký, áp dụng cách diễn giải phù 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 32 bit chưa ký, áp dụng cách diễn giải phù 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 32 bit đã ký, áp dụng cách diễn giải phù 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 số nguyên 64 bit chưa ký, áp dụng cách diễn giải phù 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 32 bit chưa ký, áp dụng cách diễn giải phù 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 32 bit có dấu, áp dụng cách diễn giải phù 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 số nguyên 16 bit chưa ký, áp dụng cách diễn giải phù 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 16 bit có dấu, áp dụng cách diễn giải phù 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 8 bit chưa ký, áp dụng cách diễn giải phù 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 mã nhận dạng 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 mã nhận dạng mạng con 16 bit chưa ký, diễn giải chuỗi đó dưới dạng số thập lục phân.
|
PrintOptionHelp(OptionSet *optSets[], FILE *s)
|
void
In văn bản trợ giúp cho danh sách các tuỳ chọn được chỉ định tới 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
|
Lớp |
|
---|---|
nl:: |
OptionSet phổ biến để xử lý các tuỳ chọn cung cấp thông tin (trợ giúp, phiên bản). |
nl:: |
Một OptionSet trong đó trình xử lý là một hàm ảo. |
Cấu trúc |
|
---|---|
nl:: |
Xác định một tuỳ chọn dòng lệnh. |
nl:: |
Xác định một nhóm các tuỳ chọn dòng lệnh có liên quan về mặt logic và có thể sử dụng lại. |
Liệt kê
OptionArgumentType
OptionArgumentType
Xác định các yêu cầu đối với đối số cho một tuỳ chọn dòng lệnh.
Typedef
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 không tuỳ chọn còn lại.
OptionHandlerFunct
bool(* OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg)
Hàm có thể được gọi để xử lý một tập hợp các tuỳ chọn dòng lệnh.
Biến
PrintArgError
void(* PrintArgError)(const char *msg,...) = DefaultPrintArgError
Con trỏ đến hàm dùng để in các lỗi xảy ra trong quá trình phân tích cú pháp đối số.
Các ứng dụng phải gọi PrintArgError() để báo cáo lỗi trong các hàm xử lý đối số không có tuỳ chọn và tuỳ chọn, thay vì in trực tiếp tới stdout/stderr.
Mặc định là một con trỏ trong hàm DefaultPrintArgError()
.
gActiveOptionSets
OptionSet ** gActiveOptionSets = NULL
Danh sách 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.
Hàm
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 việc phân tích cú pháp đối số.
Hàm mặc định dùng để in các thông báo lỗi phát sinh do việc phân tích cú pháp các đối số.
Chi tiết | |||
---|---|---|---|
Tham số |
|
Các ứng dụng phải 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 tuỳ chọn và đối số không có tuỳ chọn.
ParseArgs() lấy danh sách các đối số (argv
) và phân tích cú pháp các đối số đó theo một tập hợp các định nghĩa tuỳ chọn được cung cấp. Hàm này hỗ trợ cả các tuỳ chọn dài (opt) và ngắn (-o), đồng thời triển khai cú pháp tuỳ chọn tương tự như hàm GNU getopt_long(3).
Chi tiết | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||||||
Trả về |
true nếu tất cả tuỳ chọn và đối số không phải tuỳ chọn được phân tích cú pháp thành công; false nếu một tuỳ chọn không được nhận dạng hoặc nếu một trong các chức năng của trình xử lý bị lỗi (tức là trả về false). |
Các định nghĩa tuỳ chọn được chuyển đến ParseArgs() dưới dạng một mảng các cấu trúc OptionSet (optSets
). Mỗi OptionSet chứa một mảng các định nghĩa tuỳ chọn và một hàm của trình xử lý. ParseArgs() xử lý các đối số tuỳ chọn theo thứ tự đã cho, gọi hàm xử lý tương ứng cho mỗi tuỳ chọn được công nhận. Sau khi tất cả các tuỳ chọn đã được phân tích cú pháp, một hàm riêng biệt không phải tuỳ chọn (nonOptArgHandler
) sẽ được gọi một lần để xử lý mọi đối số còn lại.
BỘ LỰA CHỌN
OptionSet chứa một tập hợp các định nghĩa tuỳ chọn cùng với con trỏ tới một hàm của trình xử lý. Hàm này sẽ được gọi khi gặp một trong các tuỳ chọn liên quan. Các nhóm lựa chọn cũng chứa văn bản trợ giúp mô tả cú pháp và mục đích của mỗi lựa chọn (xem phần OPTION TRỢ GIÚP bên dưới). Tập hợp lựa chọn được thiết kế để cho phép tạo tập hợp các tuỳ chọn có liên quan có thể sử dụng lại. Việc này giúp đơn giản hoá quá trình cần thiết để duy trì nhiều ứng dụng chấp nhận những tuỳ chọn tương tự nhau (ví dụ: các ứng dụng kiểm thử).
Có hai mẫu để xác định OptionSetsone có thể khởi tạo một thực thể của chính cấu trúc OptionSet, ví dụ: dưới dạng một lớp toàn cục tĩnh hoặc lớp con OptionSetBase và cung cấp một hàm khởi tạo. Hàm sau sử dụng hàm HandleOption()
ảo thuần tuý để uỷ quyền xử lý tuỳ chọn cho lớp con.
Danh sách các OptionSets được truyền đến hàm ParseArgs() dưới dạng một mảng con trỏ kết thúc 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)) { ... } }
ĐỊNH NGHĨA LỰA CHỌN
Các tuỳ chọn được xác định bằng cấu trúc OptionDef
. Các định nghĩa tuỳ chọn được sắp xếp dưới dạng một mảng các phần tử OptionDef, trong đó mỗi phần tử chứa: tên tuỳ chọn, một mã nhận dạng số nguyên dùng để xác định tuỳ chọn và liệu tuỳ chọn đó có mong đợi/cho phép đối số hay không. Điểm kết thúc của mảng tuỳ chọn được báo hiệu bằng trường Tên 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 } };
IDS
Mã tuỳ chọn xác định các tuỳ chọn cho mã xử lý các tuỳ chọn đó (hàm OptionHandler). Mã lựa chọn có liên quan đến OptionSet mà chúng xuất hiện, do đó có thể được sử dụng lại trên các OptionSet khác nhau (tuy nhiên, hãy xem TÙY CHỌN NGẮN bên dưới). Quy ước chung là bắt đầu đánh số mã lựa chọn ở mức 1000, tuy nhiên, bất kỳ số nào > 128. Bạn có thể tạo các tuỳ chọn bí danh bằng cách sử dụng cùng một mã tuỳ chọn với các tên tuỳ 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ự tuỳ chọn ngắn. Đúng hơn, bất kỳ tuỳ chọn nào có giá trị id nằm trong khoảng ký tự ASCII đồ hoạ sẽ cho phép sử dụng ký tự đó dưới dạng tuỳ chọn ngắn gọn.
ParseArgs() yêu cầu các ký tự lựa chọn ngắn là duy nhất trên tất cả OptionSets. Do đó, bạn không nên sử dụng tuỳ chọn ngắn cho bất kỳ OptionSet nào được chia sẻ giữa các chương trình do khả năng xảy ra xung đột đáng kể. Bạn có thể sử dụng lại các ký tự tùy chọn ngắn trong một OptionSet để cho phép tạo tên tùy chọn bí danh dài.
TRỢ GIÚP VỀ 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 tuỳ chọn liên quan. Hàm PrintOptionHelp()
sử dụng các chuỗi này để tạo thông tin về việc sử dụng tuỳ chọn.
Theo quy ước, chuỗi trợ giúp tuỳ chọn sẽ bao gồm một ví dụ về cú pháp, theo sau là nội dung mô tả bằng văn bản về tuỳ chọn. Nếu lựa chọn này có phiên bản ngắn hoặc tên đại diện, thì tên đó sẽ được đặt trước tên dài chính. Để đảm bảo tính nhất quán, các dòng cú pháp được thụt đầu dòng 2 dấu cách, còn các dòng mô tả được thụt lề 7 dấu cách. Một dòng trống duy nhất sau mỗi nội dung mô tả về lựa chọn, bao gồm cả dòng cuối cùng.
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";
LỰA CHỌN NHÓM TRỢ GIÚP
OptionSet chứa một chuỗi HelpGroupName
dùng để nhóm các tuỳ chọn lại với nhau trong kết quả trợ giúp. Hàm PrintOptionHelp()
sử dụng HelpGroupName làm tiêu đề mục trong dữ liệu đầu ra về mức sử dụng đã tạo. Nếu nhiều OptionSets có cùng HelpGroupName, PrintOptionHelp() sẽ in trợ giúp tuỳ chọn cho các OptionSets khác nhau cùng nhau dưới một 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ị đến ParseArgsFromString()
để phân tích cú pháp. Nếu bạn không đặt biến môi trường, hàm này sẽ không làm gì cả.
Chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||||
Trả về |
true nếu tất cả các tuỳ chọn và đối số không phải tuỳ 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 chưa được đặt; false nếu một tuỳ chọn không được nhận dạng, nếu một trong các chức năng của trình xử lý bị lỗi (ví dụ: trả về giá trị 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 nhất định (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 hàm ParseArgs().
Chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||||
Trả về |
true nếu tất cả tuỳ chọn và đối số không phải tuỳ chọn được phân tích cú pháp thành công; false nếu một tuỳ chọn không được nhận dạng, nếu một trong các chức năng của trình xử lý bị lỗi (ví dụ: trả về giá trị false) hoặc nếu xảy ra lỗi nội bộ. |
Cú pháp của chuỗi đầu vào tương tự như cú pháp lệnh shell trong Unix, nhưng có lược đồ trích dẫn được đơn giản hoá. Cụ thể:
- Đối số được phân tách bằng khoảng trắng, trừ phi khoảng trắng được đặt trong cặp dấu ngoặc kép hoặc ký tự thoát.
- Dấu gạch chéo ngược thoát khỏi ký tự sau, khiến ký tự này được coi là một ký tự thông thường. Bản thân dấu gạch chéo ngược bị xoá.
- Dấu ngoặc đơn hoặc dấu ngoặc kép bắt đầu/kết thúc chuỗi con trong dấu ngoặc kép. Trong 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 cuối tương ứng. Các ký tự dấu ngoặc kép bắt đầu/kết thúc bị xoá.
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 )
Phân tích cú pháp 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 | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Trả về |
đúng về thành công; nếu không, giá trị sẽ là "false" khi không thành công.
|
ParseFabricId
bool ParseFabricId( const char *str, uint64_t & fabricId, bool allowReserved )
Phân tích cú pháp mã nhận dạng vải Weave ở dạng văn bản.
Hàm ParseFabricId() chấp nhận mã nhận dạng vải 64 bit được cung cấp ở định dạng hex, có hoặc không có tiền tố '0x'.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Tham số |
|
||||||
Trả về |
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 cho sẵn ở dạng hex.
ParseHexString() yêu cầu dữ liệu đầu vào ở dạng các cặp chữ số hex (chữ hoa hoặc chữ thường). Bạn có thể tuỳ ý phân tách các cặp hệ thập lục phân 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 dữ liệu nhập cũng bị bỏ qua.
Chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||||
Trả về |
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 | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Trả về |
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 số nguyên 64 bit chưa ký, áp dụng cách diễn giải phù hợp dựa trên tham số cơ sở.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Tham số |
|
||||||
Trả về |
đúng về thành công; nếu không, giá trị sẽ là "false" khi không thành công.
|
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 32 bit chưa ký, áp dụng cách diễn giải phù hợp dựa trên tham số cơ sở.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Tham số |
|
||||||
Trả về |
đúng về thành công; nếu không, giá trị sẽ là "false" khi không thành công.
|
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 32 bit đã ký, áp dụng cách diễn giải phù hợp dựa trên tham số cơ sở.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Tham số |
|
||||||
Trả về |
đúng về thành công; nếu không, giá trị sẽ là "false" khi không thành công.
|
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 số nguyên 64 bit chưa ký, áp dụng cách diễn giải phù hợp dựa trên tham số cơ sở.
Chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Trả về |
đúng về thành công; nếu không, giá trị sẽ là "false" khi không thành công.
|
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 32 bit chưa ký, áp dụng cách diễn giải phù hợp dựa trên tham số cơ sở.
Chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Trả về |
đúng về thành công; nếu không, giá trị sẽ là "false" khi không thành công.
|
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 32 bit có dấu, áp dụng cách diễn giải phù hợp dựa trên tham số cơ sở.
Chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Trả về |
đúng về thành công; nếu không, giá trị sẽ là "false" khi không thành công.
|
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 số nguyên 16 bit chưa ký, áp dụng cách diễn giải phù hợp dựa trên tham số cơ sở.
Chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Trả về |
đúng về thành công; nếu không, giá trị sẽ là "false" khi không thành công.
|
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 16 bit có dấu, áp dụng cách diễn giải phù hợp dựa trên tham số cơ sở.
Chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Trả về |
đúng về thành công; nếu không, giá trị sẽ là "false" khi không thành công.
|
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 8 bit chưa ký, áp dụng cách diễn giải phù hợp dựa trên tham số cơ sở.
Chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Trả về |
đúng về thành công; nếu không, giá trị sẽ là "false" khi không thành công.
|
ParseNodeId
bool ParseNodeId( const char *str, uint64_t & nodeId )
Phân tích cú pháp mã nhận dạng nút Weave ở dạng văn bản.
Hàm ParseNodeId() chấp nhận mã nhận dạng nút 64 bit được cung cấp ở định dạng hex (có hoặc không có chữ "0x" ở đầu) hoặc từ "bất kỳ" hoặc 'tất cả' được hiểu là mã nút Bất kỳ (0xFFFFFFFFFFFFFFFF).
Chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Trả về |
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 mã nhận dạng mạng con 16 bit chưa ký, diễn giải chuỗi đó dưới dạng số thập lục phân.
Chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Trả về |
đúng về thành công; nếu không, giá trị sẽ là "false" khi không thành công.
|
PrintOptionHelp
void PrintOptionHelp( OptionSet *optSets[], FILE *s )
In văn bản trợ giúp cho danh sách các tuỳ chọn được chỉ định tới một luồng.
Chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
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 )