সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।

nl:: ArgParser

সারসংক্ষেপ

গণনা

OptionArgumentType enum
একটি কমান্ড লাইন বিকল্পের জন্য আর্গুমেন্ট প্রয়োজনীয়তা সংজ্ঞায়িত করে।

Typedefs

NonOptionArgHandlerFunct )(const char *progName, int argc, char *argv[]) typedef
bool(*
একটি ফাংশন যা যেকোন অবশিষ্ট, অ-অপশন কমান্ড লাইন আর্গুমেন্ট পরিচালনা করতে কল করা যেতে পারে।
OptionHandlerFunct )(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) typedef
bool(*
একটি ফাংশন যা কমান্ড লাইন বিকল্পগুলির একটি সেট পরিচালনা করতে কল করা যেতে পারে।

ভেরিয়েবল

PrintArgError = DefaultPrintArgError)(const char *msg,...)
void(*
আর্গুমেন্ট পার্সিংয়ের সময় যে ত্রুটিগুলি দেখা যায় তা মুদ্রণ করতে ব্যবহৃত ফাংশনের পয়েন্টার৷
gActiveOptionSets = NULL
বর্তমানে সক্রিয় ParseArgs() কলে পাস করা OptionSets-এর তালিকা।

ফাংশন

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
হেক্স আকারে দেওয়া বাইটের একটি স্ট্রিং পার্স করুন।
ParseIPAddress (const char *str, IPAddress & output)
bool
পাঠ্য আকারে একটি আইপি ঠিকানা পার্স করুন।
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
পাঠ্য আকারে একটি ওয়েভ নোড আইডি পার্স করুন।
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

তথ্যগত বিকল্পগুলি পরিচালনা করার জন্য সাধারণ বিকল্প সেট (সহায়তা, সংস্করণ)।

nl:: ArgParser:: OptionSetBase

একটি OptionSet যেখানে হ্যান্ডলার একটি ভার্চুয়াল ফাংশন।

কাঠামো

nl:: ArgParser:: OptionDef

একটি কমান্ড লাইন বিকল্প সংজ্ঞায়িত করে।

nl:: ArgParser:: OptionSet

যৌক্তিকভাবে-সম্পর্কিত এবং পুনরায় ব্যবহারযোগ্য কমান্ড লাইন বিকল্পগুলির একটি গ্রুপ সংজ্ঞায়িত করে।

গণনা

অপশন আর্গুমেন্ট টাইপ

 OptionArgumentType

একটি কমান্ড লাইন বিকল্পের জন্য আর্গুমেন্ট প্রয়োজনীয়তা সংজ্ঞায়িত করে।

Typedefs

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

আর্গুমেন্ট পার্সিংয়ের সময় যে ত্রুটিগুলি দেখা যায় তা মুদ্রণ করতে ব্যবহৃত ফাংশনের পয়েন্টার৷

সরাসরি stdout/stderr-এ প্রিন্ট করার পরিবর্তে অ্যাপ্লিকেশানগুলিকে তাদের বিকল্প এবং অ-বিকল্প আর্গুমেন্ট হ্যান্ডলিং ফাংশনে ত্রুটিগুলি রিপোর্ট করতে PrintArgError() কল করা উচিত।

DefaultPrintArgError() ফাংশনের একটি পয়েন্টারে ডিফল্ট।

gActiveOptionSets

OptionSet ** gActiveOptionSets = NULL

বর্তমানে সক্রিয় ParseArgs() কলে পাস করা OptionSets-এর তালিকা।

যখন ParseArgs() এ কোন কল চলছে না তখন এই মানটি NULL হবে।

ফাংশন

CountAllOptions

size_t CountAllOptions(
  OptionSet *optSets[]
)

CountAllOptions

size_t CountAllOptions(
  OptionSet **optSets
)

CountOptionSets

size_t CountOptionSets(
  OptionSet *optSets[]
)

CountOptionSets

size_t CountOptionSets(
  OptionSet **optSets
)

ডিফল্টপ্রিন্টআর্গ ত্রুটি

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
)

মেক লং অপশন

struct option * MakeLongOptions(
  OptionSet **optSets
)

মেক শর্ট অপশন

char * MakeShortOptions(
  OptionSet **optSets
)

MakeUniqueHelpGroupNamesList

const char ** MakeUniqueHelpGroupNamesList(
  OptionSet *optSets[]
)

পার্সআর্গস

bool ParseArgs(
  const char *progName,
  int argc,
  char *argv[],
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler,
  bool ignoreUnknown
)

কমান্ড লাইন-স্টাইল আর্গুমেন্টের একটি সেট পার্স করুন, প্রতিটি অপশন এবং অ-অপশন আর্গুমেন্ট প্রক্রিয়া করার জন্য হ্যান্ডলিং ফাংশন কল করে।

ParseArgs() আর্গুমেন্টের একটি তালিকা নেয় ( argv ) এবং সরবরাহকৃত বিকল্প সংজ্ঞাগুলির একটি সেট অনুসারে তাদের পার্স করে। ফাংশনটি দীর্ঘ (অপ্ট) এবং সংক্ষিপ্ত (-ও) উভয় বিকল্পকে সমর্থন করে এবং GNU getopt_long(3) ফাংশনের মতো একই বিকল্প সিনট্যাক্স প্রয়োগ করে।

বিস্তারিত
পরামিতি
[in] progName
যে প্রোগ্রাম বা প্রেক্ষাপটে আর্গুমেন্ট পার্স করা হচ্ছে তার নাম। এই স্ট্রিংটি ত্রুটি বার্তা এবং সতর্কতা উপসর্গ করতে ব্যবহার করা হবে।
[in] argc
পার্স করা আর্গুমেন্টের সংখ্যা, প্লাস 1।
[in] argv
পার্স করা আর্গুমেন্ট স্ট্রিং একটি অ্যারে. অ্যারের দৈর্ঘ্য অবশ্যই argc-এর জন্য নির্দিষ্ট করা মানের থেকে 1 বেশি হতে হবে এবং argv[argc] অবশ্যই NULL এ সেট করতে হবে। আর্গুমেন্ট পার্সিং দ্বিতীয় অ্যারে উপাদান দিয়ে শুরু হয় (argv[1]); উপাদান 0 উপেক্ষা করা হয়।
[in] optSets
OptionSet কাঠামোর নির্দেশকের একটি তালিকা যা আইনি বিকল্পগুলিকে সংজ্ঞায়িত করে। সরবরাহকৃত তালিকা একটি NULL দিয়ে শেষ করতে হবে।
[in] nonOptArgHandler
একটি ফাংশনের একটি পয়েন্টার যাকে বিকল্প পার্সিং সম্পূর্ণ হলে বলা হবে যেকোন অবশিষ্ট অ-বিকল্প আর্গুমেন্টের সাথে। কোনো আর্গুমেন্ট থাকুক না কেন ফাংশন বলা হয়। একটি NULL পাস করা হলে ParseArgs() একটি ত্রুটি রিপোর্ট করবে যদি কোনো অপশন না থাকা আর্গুমেন্ট থাকে।
[in] ignoreUnknown
সত্য হলে, নীরবে কোনো অচেনা বিকল্প উপেক্ষা করুন।
রিটার্নস
true যদি সমস্ত বিকল্প এবং অ-বিকল্প আর্গুমেন্ট সফলভাবে পার্স করা হয়; false যদি একটি বিকল্প অচেনা হয় বা যদি হ্যান্ডলার ফাংশন ব্যর্থ হয় (অর্থাৎ মিথ্যা প্রত্যাবর্তন)।

OptionSet স্ট্রাকচার ( optSets ) এর একটি অ্যারে হিসাবে বিকল্প সংজ্ঞা ParseArgs() এ পাস করা হয়। প্রতিটি অপশনসেটে বিকল্প সংজ্ঞা এবং একটি হ্যান্ডলার ফাংশন রয়েছে। ParseArgs() প্রদত্ত ক্রমে বিকল্প আর্গুমেন্ট প্রক্রিয়া করে, প্রতিটি স্বীকৃত বিকল্পের জন্য সংশ্লিষ্ট হ্যান্ডলার ফাংশনকে কল করে। সমস্ত বিকল্প পার্স করা হয়ে গেলে, একটি পৃথক নন-অপশন হ্যান্ডলার ফাংশন ( nonOptArgHandler ) যেকোন অবশিষ্ট আর্গুমেন্ট প্রক্রিয়া করার জন্য একবার কল করা হয়।

বিকল্প সেট

একটি OptionSet- এ একটি হ্যান্ডলার ফাংশনের একটি পয়েন্টার সহ বিকল্প সংজ্ঞাগুলির একটি সেট থাকে যা সংশ্লিষ্ট বিকল্পগুলির একটির সম্মুখীন হলে কল করা হবে। বিকল্প সেটে প্রতিটি বিকল্পের সিনট্যাক্স এবং উদ্দেশ্য বর্ণনা করে সাহায্যের পাঠ্যও থাকে (নীচে বিকল্প সাহায্য দেখুন)। বিকল্প সেটগুলি সম্পর্কিত বিকল্পগুলির পুনরায় ব্যবহারযোগ্য সংগ্রহ তৈরি করার অনুমতি দেওয়ার জন্য ডিজাইন করা হয়েছে। এটি একই ধরনের বিকল্প গ্রহণ করে এমন একাধিক অ্যাপ্লিকেশন বজায় রাখার জন্য প্রয়োজনীয় প্রচেষ্টাকে সহজ করে তোলে (যেমন পরীক্ষা অ্যাপ্লিকেশন)।

OptionSetsone সংজ্ঞায়িত করার জন্য দুটি প্যাটার্ন আছে হয় OptionSet স্ট্রাকট নিজেই একটি উদাহরণ শুরু করতে পারে, যেমন একটি স্ট্যাটিক গ্লোবাল হিসাবে, অথবা সাবক্লাস OptionSetBase এবং একটি কনস্ট্রাক্টর প্রদান করে। পরেরটি একটি বিশুদ্ধ ভার্চুয়াল HandleOption() ফাংশন ব্যবহার করে সাবক্লাসে বিকল্প হ্যান্ডলিং অর্পণ করে।

OptionSets-এর তালিকাগুলি ParseArgs() ফাংশনে একটি NULL-টার্মিনেটেড অ্যারে পয়েন্টার হিসেবে পাঠানো হয়। যেমন:

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 নাম ক্ষেত্র দ্বারা সংকেত হয়। যেমন:

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

বিকল্প আইডি

অপশন আইডি কোডের বিকল্পগুলিকে চিহ্নিত করে যা সেগুলি পরিচালনা করে (অপশনহ্যান্ডলার ফাংশন)। অপশন আইডিগুলি অপশনসেটের সাথে আপেক্ষিক যেটিতে সেগুলি উপস্থিত হয় এবং এইভাবে বিভিন্ন অপশনসেট জুড়ে পুনরায় ব্যবহার করা যেতে পারে (তবে নিচে ছোট বিকল্পগুলি দেখুন)৷ সাধারণ নিয়ম হল 1000-এ নম্বর দেওয়া বিকল্প আইডি শুরু করা, তবে যেকোনো সংখ্যা > 128 ব্যবহার করা যেতে পারে। বিভিন্ন অপশন নামের একই অপশন আইডি ব্যবহার করে উপনাম অপশন তৈরি করা যায়।

সংক্ষিপ্ত বিকল্প

getopt_long(3) এর বিপরীতে, ParseArgs() সংক্ষিপ্ত বিকল্প অক্ষরগুলির তালিকা নির্দিষ্ট করে একটি পৃথক স্ট্রিং নেয় না। বরং, যে কোনো বিকল্প যার আইডি মান গ্রাফিকাল ASCII অক্ষরের পরিসরে পড়ে সেই অক্ষরটিকে একটি সংক্ষিপ্ত বিকল্প হিসাবে ব্যবহার করার অনুমতি দেবে।

ParseArgs() এর জন্য প্রয়োজন যে সংক্ষিপ্ত বিকল্প অক্ষরগুলি সমস্ত OptionSets জুড়ে অনন্য। এই কারণে, সংঘর্ষের উল্লেখযোগ্য সুযোগের কারণে প্রোগ্রাম জুড়ে শেয়ার করা যেকোন অপশনসেটের জন্য সংক্ষিপ্ত বিকল্পের ব্যবহার নিরুৎসাহিত করা হয়। সংক্ষিপ্ত বিকল্প অক্ষর একটি একক অপশনসেটের মধ্যে পুনরায় ব্যবহার করা যেতে পারে উপনাম দীর্ঘ বিকল্প নাম তৈরির জন্য অনুমতি দিতে।

বিকল্প সাহায্য

প্রতিটি OptionSet-এ একটি OptionHelp স্ট্রিং থাকে যা সংশ্লিষ্ট বিকল্পগুলির উদ্দেশ্য এবং সিনট্যাক্স বর্ণনা করে। এই স্ট্রিংগুলি PrintOptionHelp() ফাংশন দ্বারা বিকল্প ব্যবহারের তথ্য তৈরি করতে ব্যবহার করা হয়।

নিয়ম অনুসারে, বিকল্প সাহায্য স্ট্রিংগুলি বিকল্পের পাঠ্য বিবরণ দ্বারা অনুসরণ করে একটি সিনট্যাক্স উদাহরণ নিয়ে গঠিত। যদি বিকল্পটির একটি সংক্ষিপ্ত সংস্করণ, বা একটি উপনাম নাম থাকে তবে এটি প্রাথমিক দীর্ঘ নামের আগে দেওয়া হয়। সামঞ্জস্যের জন্য, সিনট্যাক্স লাইনগুলি 2টি স্পেস দিয়ে ইন্ডেন্ট করা হয়, যখন বর্ণনা লাইনগুলি 7টি স্পেস দিয়ে ইন্ডেন্ট করা হয়। একটি একক ফাঁকা লাইন প্রতিটি বিকল্পের বিবরণ অনুসরণ করে, শেষটি সহ।

যেমন:

static const char *const gToolOptionHelp =
    "  --listen\n"
    "       Listen and respond to requests sent from another node.\n"
    "\n"
    "  --length \n"
    "       Send requests with the specified number of bytes in the payload.\n"
    "\n"
    "  --num, --count \n"
    "       Send the specified number of requests and exit.\n"
    "\n"
    "  -d, --debug []\n"
    "       Set debug logging to the given level. (Default: 1)\n"
    "\n"
    "  -h, --help\n"
    "       Print help information.\n"
    "\n";

বিকল্প সাহায্য গ্রুপ

OptionSets-এ একটি HelpGroupName স্ট্রিং থাকে যা সাহায্য আউটপুটে একসাথে বিকল্পগুলিকে গোষ্ঠীভুক্ত করতে ব্যবহৃত হয়। PrintOptionHelp() ফাংশন জেনারেট করা ব্যবহার আউটপুটে একটি বিভাগের শিরোনাম হিসাবে HelpGroupName ব্যবহার করে। যদি একাধিক OptionSets-এর একই HelpGroupName থাকে, তাহলে PrintOptionHelp() একটি সাধারণ বিভাগের শিরোনামের অধীনে একসাথে বিভিন্ন অপশনসেটের জন্য বিকল্প সাহায্য প্রিন্ট করবে।

পার্সআর্গস

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
)

একটি নামযুক্ত পরিবেশ পরিবর্তনশীল থেকে আর্গুমেন্টের একটি সেট পার্স করুন।

ParseArgsFromEnvVar() একটি নামকৃত পরিবেশ পরিবর্তনশীল পড়ে এবং পার্সিংয়ের জন্য ParseArgsFromString() এর কাছে মানটি পাস করে। এনভায়রনমেন্ট ভেরিয়েবল সেট করা না থাকলে, ফাংশন কিছুই করে না।

বিস্তারিত
পরামিতি
[in] progName
যে প্রোগ্রাম বা প্রেক্ষাপটে আর্গুমেন্ট পার্স করা হচ্ছে তার নাম। এই স্ট্রিংটি ত্রুটি বার্তা এবং সতর্কতা উপসর্গ করতে ব্যবহার করা হবে।
[in] varName
পরিবেশ পরিবর্তনশীল নাম.
[in] optSets
OptionSet কাঠামোর নির্দেশকের একটি তালিকা যা আইনি বিকল্পগুলিকে সংজ্ঞায়িত করে। সরবরাহকৃত তালিকা একটি NULL দিয়ে শেষ করতে হবে।
[in] nonOptArgHandler
একটি ফাংশনের একটি পয়েন্টার যাকে বিকল্প পার্সিং সম্পূর্ণ হলে বলা হবে যেকোন অবশিষ্ট অ-বিকল্প আর্গুমেন্টের সাথে। কোনো আর্গুমেন্ট থাকুক না কেন ফাংশন বলা হয়। একটি NULL পাস করা হলে ParseArgs() একটি ত্রুটি রিপোর্ট করবে যদি কোনো অপশন না থাকা আর্গুমেন্ট থাকে।
[in] ignoreUnknown
সত্য হলে, নীরবে কোনো অচেনা বিকল্প উপেক্ষা করুন।
রিটার্নস
true যদি সব অপশন এবং অ-অপশন আর্গুমেন্ট সফলভাবে পার্স করা হয়, অথবা যদি নির্দিষ্ট এনভায়রনমেন্ট ভেরিয়েবল সেট করা না থাকে; false যদি একটি বিকল্প অচেনা হয়, যদি একটি হ্যান্ডলার ফাংশন ব্যর্থ হয় (অর্থাৎ মিথ্যা প্রত্যাবর্তন) বা যদি একটি অভ্যন্তরীণ ত্রুটি ঘটেছে।

পার্সআর্গসফ্রমএনভিভার

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
)

প্রদত্ত স্ট্রিং থেকে আর্গুমেন্টের একটি সেট পার্স করুন।

ParseArgsFromString() একটি প্রদত্ত স্ট্রিং ( argStr ) কে আর্গুমেন্টের একটি সেটে বিভক্ত করে এবং ParseArgs() ফাংশন ব্যবহার করে আর্গুমেন্ট পার্স করে।

বিস্তারিত
পরামিতি
[in] progName
যে প্রোগ্রাম বা প্রেক্ষাপটে আর্গুমেন্ট পার্স করা হচ্ছে তার নাম। এই স্ট্রিংটি ত্রুটি বার্তা এবং সতর্কতা উপসর্গ করতে ব্যবহার করা হবে।
[in] argStr
পার্স করার জন্য বিকল্প এবং আর্গুমেন্ট ধারণকারী একটি স্ট্রিং।
[in] optSets
OptionSet কাঠামোর নির্দেশকের একটি তালিকা যা আইনি বিকল্পগুলিকে সংজ্ঞায়িত করে। সরবরাহকৃত তালিকা একটি NULL দিয়ে শেষ করতে হবে।
[in] nonOptArgHandler
একটি ফাংশনের একটি পয়েন্টার যাকে বিকল্প পার্সিং সম্পূর্ণ হলে বলা হবে যেকোন অবশিষ্ট অ-বিকল্প আর্গুমেন্টের সাথে। কোনো আর্গুমেন্ট থাকুক না কেন ফাংশন বলা হয়। একটি NULL পাস করা হলে ParseArgs() একটি ত্রুটি রিপোর্ট করবে যদি কোনো অপশন না থাকা আর্গুমেন্ট থাকে।
[in] ignoreUnknown
সত্য হলে, নীরবে কোনো অচেনা বিকল্প উপেক্ষা করুন।
রিটার্নস
true যদি সমস্ত বিকল্প এবং অ-বিকল্প আর্গুমেন্ট সফলভাবে পার্স করা হয়; false যদি একটি বিকল্প অচেনা হয়, যদি একটি হ্যান্ডলার ফাংশন ব্যর্থ হয় (অর্থাৎ মিথ্যা প্রত্যাবর্তন) বা যদি একটি অভ্যন্তরীণ ত্রুটি ঘটেছে।

ইনপুট স্ট্রিংগুলির সিনট্যাক্স ইউনিক্স শেল কমান্ড সিনট্যাক্সের অনুরূপ, তবে একটি সরলীকৃত উদ্ধৃতি স্কিম সহ। বিশেষভাবে:

  • আর্গুমেন্ট হোয়াইটস্পেস দ্বারা সীমাবদ্ধ করা হয়, যদি না হোয়াইটস্পেস উদ্ধৃত হয় বা এস্কেপ করা হয়।
  • একটি ব্যাকস্ল্যাশ নিম্নলিখিত অক্ষর থেকে পালিয়ে যায়, যার ফলে এটি একটি সাধারণ চরিত্র হিসাবে বিবেচিত হয়। ব্যাকস্ল্যাশ নিজেই ছিনতাই করা হয়।
  • একক বা ডবল উদ্ধৃতি শুরু/শেষ উদ্ধৃত সাবস্ট্রিং। একটি সাবস্ট্রিং-এর মধ্যে, শুধুমাত্র বিশেষ অক্ষরগুলি হল ব্যাকস্ল্যাশ, যা পরবর্তী অক্ষর থেকে পালিয়ে যায় এবং সংশ্লিষ্ট শেষ উদ্ধৃতি। শুরু/শেষ উদ্ধৃতি অক্ষর ছিনতাই করা হয়েছে।

যেমন:

--listen --count 10 --sw-version '1.0 (DEVELOPMENT)' "--hostname=nest.com"

পার্সআর্গসফ্রমস্ট্রিং

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
)

একটি বুলিয়ান মান হিসাবে একটি স্ট্রিং পার্স করুন।

এই ফাংশনটি নিম্নলিখিত ইনপুট মানগুলি গ্রহণ করে (কেস-সংবেদনশীল): "সত্য", "হ্যাঁ", "টি", "y", "1", "ফলস", "না", "f", "n", " 0"

বিস্তারিত
পরামিতি
[in] str
পার্স করার মান উপস্থাপন করে একটি NULL-টার্মিনেটেড C স্ট্রিংয়ের একটি পয়েন্টার।
[out] output
একটি বুলের জন্য স্টোরেজের একটি রেফারেন্স যেখানে পার্স করা মান সফলতার সাথে সংরক্ষণ করা হবে।
রিটার্নস
সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা।

পার্সফ্যাব্রিকআইডি

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

টেক্সট আকারে একটি ওয়েভ ফ্যাব্রিক আইডি পার্স করুন।

ParseFabricId() ফাংশন হেক্স ফরম্যাটে দেওয়া একটি 64-বিট ফ্যাব্রিক আইডি গ্রহণ করে, একটি লিডিং '0x' সহ বা ছাড়াই।

বিস্তারিত
পরামিতি
[in] str
পার্স করার জন্য ফ্যাব্রিক আইডি ধারণকারী একটি NULL-টার্মিনেটেড C স্ট্রিং-এর একটি পয়েন্টার।
[out] output
একটি uint64_t lvalue এর একটি রেফারেন্স যেখানে পার্স করা মান সফলতার উপর সংরক্ষণ করা হবে।
[in] allowReserved
সত্য হলে, সংরক্ষিত পরিসরে ফ্যাব্রিক আইডি পার্স করার অনুমতি দিন।
রিটার্নস
মান সফলভাবে পার্স করা হলে true; মিথ্যা না হলে।

পার্সহেক্সস্ট্রিং

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

হেক্স আকারে দেওয়া বাইটের একটি স্ট্রিং পার্স করুন।

ParseHexString() আশা করে ইনপুটটি জোড়া হেক্স ডিজিটের আকারে (উপরের বা ছোট হাতের)। হেক্স জোড়া ঐচ্ছিকভাবে নিচের যেকোনো অক্ষর দ্বারা আলাদা করা যেতে পারে: কোলন, সেমিকোলন, কমা, পিরিয়ড বা ড্যাশ। অতিরিক্তভাবে, ইনপুট স্ট্রিং-এর যেকোনো জায়গায় হোয়াইটস্পেস অক্ষর উপেক্ষা করা হয়।

বিস্তারিত
পরামিতি
[in] hexStr
পার্স করার জন্য স্ট্রিং একটি পয়েন্টার.
[in] strLen
পার্স করার জন্য hexStr-এ অক্ষরের সংখ্যা।
[in] outBuf
একটি বাফারের একটি পয়েন্টার যেখানে পার্স বাইট সংরক্ষণ করা হবে।
[in] outBufSize
outBuf দ্বারা নির্দেশিত বাফারের আকার।
[out] outDataLen
একটি পূর্ণসংখ্যার একটি রেফারেন্স যা পার্স করা মোট বাইটের সংখ্যা পাবে। ইভেন্টে outBuf প্রদত্ত সংখ্যক বাইট ধরে রাখার জন্য যথেষ্ট বড় নয়, outDataLen UINT32_MAX এ সেট করা হবে।
রিটার্নস
মান সফলভাবে পার্স করা হলে true; ইনপুট ডেটা ত্রুটিপূর্ণ হলে মিথ্যা, বা outBuf খুব ছোট হলে।

আইপিএ ঠিকানা পার্স করুন

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

পাঠ্য আকারে একটি আইপি ঠিকানা পার্স করুন।

বিস্তারিত
পরামিতি
[in] str
পার্স করার ঠিকানা সমন্বিত একটি NULL-টার্মিনেটেড C স্ট্রিং-এর একটি পয়েন্টার।
[out] output
একটি আইপিএড্রেস অবজেক্টের একটি রেফারেন্স যেখানে পার্স করা মান সাফল্যের উপর সংরক্ষণ করা হবে।
রিটার্নস
মান সফলভাবে পার্স করা হলে true; মিথ্যা না হলে।

পার্সইন্ট

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 উহ্য থাকে।
রিটার্নস
সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা।

পার্সইন্ট

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 উহ্য থাকে।
রিটার্নস
সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা।

পার্সইন্ট

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 উহ্য থাকে।
রিটার্নস
সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা।

পার্সইন্ট

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

পার্স করুন এবং ভিত্তি প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করে একটি 64-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যাতে দশমিক মান হিসাবে ব্যাখ্যা করা একটি স্ট্রিংকে রূপান্তর করার চেষ্টা করুন।

বিস্তারিত
পরামিতি
[in] str
পার্স করার জন্য পূর্ণসংখ্যার প্রতিনিধিত্বকারী একটি শূন্য-সমাপ্ত C স্ট্রিংয়ের একটি পয়েন্টার।
[out] output
একটি 64-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যার জন্য সঞ্চয়স্থানের একটি রেফারেন্স যেখানে পার্স করা মান সফলতার সাথে সংরক্ষণ করা হবে।
রিটার্নস
সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা।

পার্সইন্ট

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

পার্স করুন এবং বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করে একটি 32-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যাতে দশমিক মান হিসাবে ব্যাখ্যা করা একটি স্ট্রিংকে রূপান্তর করার চেষ্টা করুন।

বিস্তারিত
পরামিতি
[in] str
পার্স করার জন্য পূর্ণসংখ্যার প্রতিনিধিত্বকারী একটি শূন্য-সমাপ্ত C স্ট্রিংয়ের একটি পয়েন্টার।
[out] output
একটি 32-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যার জন্য সঞ্চয়স্থানের একটি রেফারেন্স যেখানে পার্স করা মান সফলতার সাথে সংরক্ষণ করা হবে।
রিটার্নস
সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা।

পার্সইন্ট

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

বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করে 32-বিট স্বাক্ষরিত পূর্ণসংখ্যাতে দশমিক মান হিসাবে ব্যাখ্যা করা একটি স্ট্রিংকে পার্স করুন এবং রূপান্তর করার চেষ্টা করুন।

বিস্তারিত
পরামিতি
[in] str
পার্স করার জন্য পূর্ণসংখ্যার প্রতিনিধিত্বকারী একটি শূন্য-সমাপ্ত C স্ট্রিংয়ের একটি পয়েন্টার।
[out] output
একটি 32-বিট স্বাক্ষরিত পূর্ণসংখ্যার জন্য সঞ্চয়স্থানের একটি রেফারেন্স যেখানে পার্স করা মান সফলতার সাথে সংরক্ষণ করা হবে।
রিটার্নস
সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা।

পার্সইন্ট

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

পার্স করুন এবং বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করে 16-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যাতে দশমিক মান হিসাবে ব্যাখ্যা করা একটি স্ট্রিং রূপান্তর করার চেষ্টা করুন।

বিস্তারিত
পরামিতি
[in] str
পার্স করার জন্য পূর্ণসংখ্যার প্রতিনিধিত্বকারী একটি শূন্য-সমাপ্ত C স্ট্রিংয়ের একটি পয়েন্টার।
[out] output
একটি 16-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যার জন্য সঞ্চয়স্থানের একটি রেফারেন্স যেখানে পার্স করা মান সফলতার সাথে সংরক্ষণ করা হবে।
রিটার্নস
সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা।

পার্সইন্ট

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

পার্স করুন এবং বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করে একটি 16-বিট স্বাক্ষরিত পূর্ণসংখ্যাতে দশমিক মান হিসাবে ব্যাখ্যা করা একটি স্ট্রিংকে রূপান্তর করার চেষ্টা করুন।

বিস্তারিত
পরামিতি
[in] str
পার্স করার জন্য পূর্ণসংখ্যার প্রতিনিধিত্বকারী একটি শূন্য-সমাপ্ত C স্ট্রিংয়ের একটি পয়েন্টার।
[out] output
একটি 16-বিট স্বাক্ষরিত পূর্ণসংখ্যার জন্য সঞ্চয়স্থানের একটি রেফারেন্স যেখানে পার্স করা মান সাফল্যের উপর সংরক্ষণ করা হবে।
রিটার্নস
সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা।

পার্সইন্ট

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

পার্স করুন এবং একটি দশমিক মান হিসাবে ব্যাখ্যা করা একটি স্ট্রিংকে 8-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যাতে রূপান্তর করার চেষ্টা করুন, বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করুন৷

বিস্তারিত
পরামিতি
[in] str
পার্স করার জন্য পূর্ণসংখ্যার প্রতিনিধিত্বকারী একটি শূন্য-সমাপ্ত C স্ট্রিংয়ের একটি পয়েন্টার।
[out] output
একটি 8-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যার জন্য সঞ্চয়স্থানের একটি রেফারেন্স যেখানে পার্স করা মান সফলতার সাথে সংরক্ষণ করা হবে।
রিটার্নস
সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা।

পার্স নোডআইডি

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

পাঠ্য আকারে একটি ওয়েভ নোড আইডি পার্স করুন।

ParseNodeId() ফাংশনটি হেক্স ফরম্যাটে প্রদত্ত একটি 64-বিট নোড আইডি গ্রহণ করে (একটি অগ্রণী '0x' সহ বা ছাড়া), অথবা 'যেকোনো' বা 'সমস্ত' শব্দ যা যেকোন নোড আইডি (0xFFFFFFFFFFFFFFFFFFFFF) অর্থ হিসাবে ব্যাখ্যা করা হয়। .

বিস্তারিত
পরামিতি
[in] str
পার্স করার জন্য নোড আইডি ধারণকারী একটি NULL-টার্মিনেটেড C স্ট্রিং-এর একটি পয়েন্টার।
[out] output
একটি uint64_t lvalue এর একটি রেফারেন্স যেখানে পার্স করা মান সফলতার উপর সংরক্ষণ করা হবে।
রিটার্নস
মান সফলভাবে পার্স করা হলে true; মিথ্যা না হলে।

সাবনেটআইডি পার্স করুন

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

পার্স করুন এবং একটি স্ট্রিংকে হেক্সাডেসিমেল হিসাবে ব্যাখ্যা করে একটি 16-বিট স্বাক্ষরবিহীন সাবনেট আইডিতে রূপান্তর করার চেষ্টা করুন।

বিস্তারিত
পরামিতি
[in] str
পার্স করার জন্য হেক্সাডেসিমেল হিসাবে ফর্ম্যাট করা সাবনেট আইডি প্রতিনিধিত্বকারী একটি NULL-টার্মিনেটেড C স্ট্রিং-এর একটি পয়েন্টার।
[in,out] subnetId
একটি 16-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যার জন্য স্টোরেজের একটি রেফারেন্স যেখানে পার্স করা সাবনেট আইডি মান সফলতার সাথে সংরক্ষণ করা হবে।
রিটার্নস
সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা।

প্রিন্ট অপশন হেল্প

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
)

স্প্লিটআর্গস

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