nl:: ArgParser (Quảng cáo của Google)
Tóm tắt
Bảng liệt 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. |
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 bắt buộc còn lại. |
OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg)
|
typedefbool(*
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ỏ tới hàm dùng để in lỗi xảy ra trong quá trình phân tích cú pháp đối số.
|
gActiveOptionSets = NULL
|
OptionSet **
Danh sách các OptionSet đã 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 kết với 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 đố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 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 đối số từ một biến môi trường đã đặ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 đối số từ một chuỗi nhất định.
|
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 mã 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 ở dạng thập lục phân.
|
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 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 thông 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 diễn giải dưới dạng giá trị thập phân thành số nguyên 64 bit không dấu, áp dụng cách diễn giải thích hợp dựa trên thông 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 diễn giải dưới dạng 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 diễn giải dưới dạng 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 thông 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 diễn giải dưới dạng giá trị thập phân thành 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 thông 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 diễn giải dưới dạng 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 diễn giải dưới dạng 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 một mã 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ột mã mạng con chưa ký 16 bit, 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 tùy chọn được chỉ định cho 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 lựa chọn thông tin (trợ giúp, phiên bản). |
nl:: |
OptionSet mà trình xử lý là một hàm ảo. |
Cấu trúc |
|
---|---|
nl:: |
Xác định tùy chọn dòng lệnh. |
nl:: |
Xác định nhóm các tùy chọn dòng lệnh có liên quan và có thể sử dụng lại. |
Bảng liệt kê
Loại tùy chọn
OptionArgumentType
Xác định các yêu cầu đối số cho một tùy chọn dòng lệnh.
Typedef
Không bắt buộc xử lý
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 bắt buộc còn lại.
Trình xử lý tùy chọn
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
Lỗi PrintArg
void(* PrintArgError)(const char *msg,...) = DefaultPrintArgError
Con trỏ tới hàm 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 PrintArgErrors() để báo cáo lỗi trong hàm và các hàm xử lý đối số không tùy chọn, thay vì in trực tiếp tới stdout/stderr.
Giá trị mặc định là con trỏ tới hàm DefaultPrintArgError()
.
gActiveOptionSets
OptionSet ** gActiveOptionSets = NULL
Danh sách các OptionSet đã 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().
Hàm
Đếm tất cả tùy chọn
size_t CountAllOptions( OptionSet *optSets[] )
Đếm tất cả tùy chọn
size_t CountAllOptions( OptionSet **optSets )
Bộ đếm tùy chọn
size_t CountOptionSets( OptionSet *optSets[] )
Bộ đếm tùy chọn
size_t CountOptionSets( OptionSet **optSets )
Lỗi Mặc định
void DefaultPrintArgError( const char *msg, ... )
In thông báo lỗi liên kết với phân tích cú pháp đối số.
Hàm mặc định dùng để in thông báo lỗi phát sinh do phân tích cú pháp các đối số.
Thông tin chi tiết | |||
---|---|---|---|
Các thông số |
|
Các ứng dụng nên gọi con trỏ chức năng PrintArgERRORS chứ không 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 )
Thực hiện các tùy chọn
struct option * MakeLongOptions( OptionSet **optSets )
Tạo video ngắn
char * MakeShortOptions( OptionSet **optSets )
MakeUniqueHelpGroupNamesList (Danh sách tạo nhóm duy nhất trợ giúp)
const char ** MakeUniqueHelpGroupNamesList( OptionSet *optSets[] )
Phô mai 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 đố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 tùy 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 tùy chọn được cung cấp. Hàm hỗ trợ cả tùy chọn dài (tối ưu hóa) và ngắn (-o) và triển khai cú pháp tùy chọn giống như hàm GNU getopt_long(3).
Thông tin chi tiết | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
||||||||||||
Trả về |
true nếu tất cả các tùy chọn và đối số không tùy chọn được phân tích cú pháp thành công; false nếu không nhận dạng được một tùy chọn hoặc nếu một trong các hàm của trình xử lý không thành công (tức là trả về false). |
Các định nghĩa tùy 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 đị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 trình xử lý tương ứng cho mỗi tùy chọn được nhận dạng. Sau khi tất cả các tùy chọn được phân tích cú pháp, hàm xử lý không tùy chọn riêng (nonOptArgHandler
) được gọi một lần để xử lý các đối số còn lại.
BỘ GÓI LỰA CHỌN
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 hàm xử lý sẽ được gọi khi gặp một trong các tùy chọn liên quan. Các tập hợp tuỳ 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 tuỳ chọn (xem GÓI TÙY CHỈNH bên dưới). Tập hợp 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ủa các tùy chọn có liên quan. Điều này giúp đơ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ự nhau (ví dụ: các ứng dụng thử nghiệm).
Có 2 mẫu để xác định OptionSetsone có thể khởi tạo một thực thể của cấu trúc OptionSet, ví dụ: dưới dạng toàn cầu tĩnh hoặc OptionSetBase và cung cấp một hàm dựng. Lớp thứ hai sử dụng một hàm HandleOption()
ảo thuần túy để ủy quyền xử lý tùy chọn cho lớp con.
Danh sách các OptionSet được chuyển đến hàm ParseArgs() dưới dạng một mảng con trỏ kết thúc bằng NULL. Ví dụ:
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 KHIẾM KHUYẾT TÙY CHỌN
Các tùy chọn được xác định bằng cấu trúc OptionDef
. Các định nghĩa về tùy 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 của tùy chọn, mã nhận dạng số nguyên được dùng để xác định tùy chọn và liệu tùy chọn có chấp nhận/cho phép đối số hay không. Phần cuối của mảng tùy chọn sẽ được báo hiệu bằng trường Tên NULL. Ví dụ:
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 } };
Mã TÙY CHỌN
Id tùy chọn xác định các tùy chọn đối với mã xử lý các mã đó (hàm OptionHandler). Mã tùy chọn có liên quan đến OptionSet mà chúng xuất hiện và do đó có thể được sử dụng lại trên các Nhóm tùy chọn khác nhau (tuy nhiên, bạn có thể xem các TÙY CHỌN NGẮN HẠN ở bên dưới). Quy ước chung là bắt đầu mã tuỳ chọn đánh số ở số 1000. Tuy nhiên, bạn có thể dùng số 128 và số 128. Bạn có thể tạo tùy chọn bí danh bằng cách sử dụng cùng một mã tùy chọn có các tên tùy chọn khác nhau.
CÁC LỰA CHỌN NGỪNG
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 dải ký tự ASCII đồ họa sẽ cho phép sử dụng ký tự đó làm tùy chọn ngắn.
ParseArgs() yêu cầu các ký tự tùy chọn ngắn phải là duy nhất trên all OptionSets. Do đó, bạn không nên sử dụng các tùy chọn ngắn cho bất kỳ Cài đặt tùy chọn nào được chia sẻ trên các chương trình do có nhiều khả năng xảy ra va chạm. Bạn có thể sử dụng lại các ký tự tùy chọn ngắn trong một OptionSet duy nhất để cho phép tạo tên tùy chọn dài của 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 được liên kết. Những chuỗi này được hàm PrintOptionHelp()
sử dụng để 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ụ về cú pháp sau phần mô tả bằng văn bản về tùy chọn. Nếu tùy chọn có phiên bản ngắn hoặc tên bí danh, thì tùy chọn này 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 lề 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 sẽ tuân theo từng nội dung mô tả tùy chọn, bao gồm cả dòng cuối cùng.
Ví dụ:
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";
NHÓM HỖ TRỢ TÙY CHỌN
OptionSets chứa một chuỗi HelpGroupName
dùng để nhóm các tùy chọn với nhau trong dữ liệu đầu ra trợ giúp. Hàm PrintOptionHelp()
sử dụng HelpGroupName làm tiêu đề mục trong dữ liệu sử dụng đã tạo. Nếu nhiều OptionSets có cùng một GroupGroupName, PrintOptionHelp() sẽ in trợ giúp tùy chọn cho các OptionSets khác nhau cùng nhau trong một tiêu đề phần chung.
Phô mai ParseArgs
bool ParseArgs( const char *progName, int argc, char *argv[], OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler )
Phô mai ParseArgs
bool ParseArgs( const char *progName, int argc, char *argv[], OptionSet *optSets[] )
Phô mai 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 đối số từ một biến môi trường đã đặt tên.
ParseArgsFromEnvVar() đọc một biến môi trường được đặt tên và chuyển giá trị đó vào ParseArgsFromString()
để phân tích cú pháp. Nếu biến môi trường không được đặt, hàm sẽ không thực hiện hành động nào.
Thông tin chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
||||||||||
Trả về |
true nếu tất cả các tùy chọn và đối số không 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 không nhận dạng được một tùy chọn, nếu một trong các hàm của trình xử lý không thành công (tức là trả về là false) hoặc nếu xảy ra lỗi nội bộ. |
Phô mai ParseArgsFromEnvVar
bool ParseArgsFromEnvVar( const char *progName, const char *varName, OptionSet *optSets[] )
Phô mai ParseArgsFromEnvVar
bool ParseArgsFromEnvVar( const char *progName, const char *varName, OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler )
Phô mai 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 đối số từ một chuỗi nhất định.
ParseArgsFromString() tách 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 cách sử dụng hàm ParseArgs().
Thông tin chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
||||||||||
Trả về |
true nếu tất cả các tùy chọn và đối số không tùy chọn được phân tích cú pháp thành công; false nếu không nhận dạng được một tùy chọn nếu một trong các hàm của trình xử lý không thành công (tức là trả về sai) hoặc nếu có lỗi nội bộ xảy ra. |
Cú pháp của chuỗi đầu vào tương tự như cú pháp lệnh unix, nhưng có lược đồ trích dẫn đơn giản. Cụ thể:
- Các đối số được phân tá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ự này được coi là ký tự thông thường. Dấu gạch chéo ngược sẽ bị loại bỏ.
- Chuỗi con của dấu ngoặc đơn hoặc dấu ngoặc kép bắt đầu/kết thúc. 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 sau ký tự tiếp theo) và dấu ngoặc kép tương ứng. Ký tự bắt đầu/kết thúc trích dẫn sẽ bị loại bỏ.
Ví dụ:
--listen --count 10 --sw-version '1.0 (DEVELOPMENT)' "--hostname=nest.com"
Phô mai ParseArgsFromString
bool ParseArgsFromString( const char *progName, const char *argStr, OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler )
Phô mai ParseArgsFromString
bool ParseArgsFromString( const char *progName, const char *argStr, OptionSet *optSets[] )
Phân tích cú pháp Boolean
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ị nhập vào sau đây (không phân biệt chữ hoa chữ thường): "true", "yes", "t", "y", "1", "false";"n&hl=vi; &
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
||||
Trả về |
đúng về thành công; nếu không thì sai về thất bại.
|
Mã ParseFabricId
bool ParseFabricId( const char *str, uint64_t & fabricId, bool allowReserved )
Phân tích cú pháp mã vải Weave ở dạng văn bản.
Hàm ParseFabricId() chấp nhận id vải 64 bit được cung cấp ở định dạng thập lục phân, có hoặc không có mọi # 39; 0x\39 hàng đầu.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông 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 được phân tích cú pháp.
|
Phô mai 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 ở dạng thập lục phân.
ParseHexString() dự kiến đầu vào sẽ ở dạng các cặp số thập lục phân (chữ hoa hoặc chữ thường). Các cặp hệ thập lục phân có thể tùy ý được phân tách 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 cứ đâu trong chuỗi đầu vào đều bị bỏ qua.
Thông tin chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Các thông 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ỏ. |
ParseIPĐịa chỉ
bool ParseIPAddress( const char *str, IPAddress & output )
Phân tích cú pháp địa chỉ IP ở dạng văn bản.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông 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 được phân tích cú pháp.
|
Phân tích cú pháp
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 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ở.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông số |
|
||||||
Trả về |
đúng về thành công; nếu không thì sai về thất bại.
|
Phân tích cú pháp
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ở.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông số |
|
||||||
Trả về |
đúng về thành công; nếu không thì sai về thất bại.
|
Phân tích cú pháp
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 thông số cơ sở.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông số |
|
||||||
Trả về |
đúng về thành công; nếu không thì sai về thất bại.
|
Phân tích cú pháp
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 diễn giải dưới dạng giá trị thập phân thành số nguyên 64 bit không dấu, áp dụng cách diễn giải thích hợp dựa trên thông số cơ sở.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
||||
Trả về |
đúng về thành công; nếu không thì sai về thất bại.
|
Phân tích cú pháp
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 diễn giải dưới dạng 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ở.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
||||
Trả về |
đúng về thành công; nếu không thì sai về thất bại.
|
Phân tích cú pháp
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 diễn giải dưới dạng 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 thông số cơ sở.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
||||
Trả về |
đúng về thành công; nếu không thì sai về thất bại.
|
Phân tích cú pháp
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 diễn giải dưới dạng giá trị thập phân thành 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 thông số cơ sở.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
||||
Trả về |
đúng về thành công; nếu không thì sai về thất bại.
|
Phân tích cú pháp
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 diễn giải dưới dạng 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ở.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
||||
Trả về |
đúng về thành công; nếu không thì sai về thất bại.
|
Phân tích cú pháp
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 diễn giải dưới dạng 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ở.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
||||
Trả về |
đúng về thành công; nếu không thì sai về thất bại.
|
Mã phân tích cú pháp
bool ParseNodeId( const char *str, uint64_t & nodeId )
Phân tích cú pháp một mã nút Weave ở dạng văn bản.
Hàm ParseNodeId() chấp nhận mã nút 64 bit được cung cấp ở định dạng hex (có hoặc không có & # 39; 0 x # 39); hoặc các từ × 39; bất kỳ # 39; hoặc & # 39; tất cả & # 39; được diễn giải là ý nghĩa của bất kỳ mã nút nào (0xFFFFFFFFFFFF).
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông 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 được phân tích cú pháp.
|
Mã 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ột mã mạng con chưa ký 16 bit, diễn giải chuỗi đó dưới dạng số thập lục phân.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
||||
Trả về |
đúng về thành công; nếu không thì sai về thất bại.
|
Trợ giúp về PrintOption
void PrintOptionHelp( OptionSet *optSets[], FILE *s )
In văn bản trợ giúp cho danh sách các tùy chọn được chỉ định cho một luồng.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
PutStringWithEmptyLine
void PutStringWithBlankLine( FILE *s, const char *str )
PutStringWithNewLine
void PutStringWithNewLine( FILE *s, const char *str )
Phân tách
int32_t SplitArgs( char *argStr, char **& argList, char *initialArg )