nl::ArgParser

Özet

Sıralamalar

OptionArgumentType enum
Komut satırı seçeneği için bağımsız değişken gereksinimlerini tanımlar.

Türdefler

NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[]) typedef
bool(*
Seçenek olmayan, kalan komut satırı bağımsız değişkenlerini işlemek için çağrılabilen bir işlev.
OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) typedef
bool(*
Bir dizi komut satırı seçeneğini kullanmak için çağrılabilen işlev.

Değişkenler

PrintArgError = DefaultPrintArgError)(const char *msg,...)
void(*
Bağımsız değişken ayrıştırma sırasında oluşan hataları yazdırmak için kullanılan işlevin işaretçisi.
gActiveOptionSets = NULL
Şu anda etkin olan ParseArgs() çağrısına iletilen OptionSet listesi

İşlevler

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
Bağımsız değişken ayrıştırmayla ilgili bir hata mesajı yazdırın.
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
Her bir seçeneği ve seçenek olmayan bağımsız değişkeni işlemek için işleme işlevleri çağırarak komut satırı stilindeki bir grup bağımsız değişkeni ayrıştırır.
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
Adlandırılmış bir ortam değişkeninden bir grup bağımsız değişkeni ayrıştırır.
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
Belirli bir dizeden bir grup bağımsız değişkeni ayrıştırır.
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
Bir dizeyi boole değeri olarak ayrıştırır.
ParseFabricId(const char *str, uint64_t & fabricId, bool allowReserved)
bool
Weave kumaş kimliğini metin biçiminde ayrıştırın.
ParseHexString(const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen)
bool
Onaltılık biçimde verilen bayt dizesini ayrıştırır.
ParseIPAddress(const char *str, IPAddress & output)
bool
IP adresini metin biçiminde ayrıştırır.
ParseInt(const char *str, uint64_t & output, int base)
bool
Bir dizeyi ayrıştırıp temel parametreye uygun yorumlamayı uygulayarak 64 bitlik imzasız tam sayıya dönüştürmeye çalışın.
ParseInt(const char *str, uint32_t & output, int base)
bool
Bir dizeyi ayrıştırır ve temel parametreye uygun yorumlamayı uygulayarak 32 bitlik imzasız tam sayıya dönüştürmeye çalışın.
ParseInt(const char *str, int32_t & output, int base)
bool
Bir dizeyi ayrıştırır ve temel parametreye göre uygun yorumu uygulayarak 32 bit imzalı tam sayıya dönüştürmeyi deneyin.
ParseInt(const char *str, uint64_t & output)
bool
Ondalık değer olarak yorumlanan bir dizeyi 64 bitlik imzasız tam sayıya dönüştürme ve temel parametreye göre uygun yorumlamayı uygulayarak dönüştürmeyi deneyin.
ParseInt(const char *str, uint32_t & output)
bool
Ondalık değer olarak yorumlanan bir dizeyi 32 bitlik imzasız tam sayıya dönüştürme ve temel parametreye göre uygun yorumlamayı uygulayarak dönüştürmeyi deneyin.
ParseInt(const char *str, int32_t & output)
bool
Ondalık değer olarak yorumlanan bir dizeyi 32 bitlik işaretli bir tam sayıya ayrıştırıp dönüştürmeye çalışın. Bu işlemi, temel parametreye göre uygun şekilde yorumlayın.
ParseInt(const char *str, uint16_t & output)
bool
Ondalık değer olarak yorumlanan bir dizeyi 16 bitlik imzasız tam sayıya dönüştürüp temel parametreye göre uygun yorumlamayı uygulayarak dönüştürmeyi deneyin.
ParseInt(const char *str, int16_t & output)
bool
Ondalık değer olarak yorumlanan bir dizeyi 16 bitlik işaretli bir tam sayıya ayrıştırma ve dönüştürmeyi deneyerek temel parametreye uygun açıklamayı uygular.
ParseInt(const char *str, uint8_t & output)
bool
Ondalık değer olarak yorumlanan bir dizeyi 8 bitlik imzalanmamış bir tam sayıya, temel parametreye göre uygun yorumlamayı uygulayarak ayrıştırmaya ve dönüştürmeye çalışın.
ParseNodeId(const char *str, uint64_t & nodeId)
bool
Metin biçiminde bir Weave düğüm kimliğini ayrıştırır.
ParseSubnetId(const char *str, uint16_t & subnetId)
bool
Bir dizeyi onaltılık olarak yorumlayarak ayrıştırıp 16 bitlik imzasız alt ağ kimliğine dönüştürmeyi deneyin.
PrintOptionHelp(OptionSet *optSets[], FILE *s)
void
Bir akış için belirtilen seçenek listesi için yardım metnini yazdırın.
PutStringWithBlankLine(FILE *s, const char *str)
void
PutStringWithNewLine(FILE *s, const char *str)
void
SplitArgs(char *argStr, char **& argList, char *initialArg)
int32_t

Sınıflar

nl::ArgParser::HelpOptions

Bilgi seçeneklerini işlemek için ortak OptionSet (yardım, sürüm).

nl::ArgParser::OptionSetBase

İşleyicinin sanal bir işlev olduğu bir OptionSet.

Yapılar

nl::ArgParser::OptionDef

Komut satırı seçeneği tanımlar.

nl::ArgParser::OptionSet

Mantıksal olarak ilişkili ve yeniden kullanılabilir bir komut satırı seçeneği grubu tanımlar.

Sıralamalar

OptionArgumentType

 OptionArgumentType

Komut satırı seçeneği için bağımsız değişken gereksinimlerini tanımlar.

Türdefler

NonOptionArgHandlerFunct

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

Seçenek olmayan, kalan komut satırı bağımsız değişkenlerini işlemek için çağrılabilen bir işlev.

OptionHandlerFunct

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

Bir dizi komut satırı seçeneğini kullanmak için çağrılabilen işlev.

Değişkenler

PrintArgError

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

Bağımsız değişken ayrıştırma sırasında oluşan hataları yazdırmak için kullanılan işlevin işaretçisi.

Uygulamalar, doğrudan stdout/stderr'e yazdırmak yerine seçeneklerindeki hataları ve seçenek olmayan bağımsız değişken işleme işlevlerindeki hataları bildirmek için PrintArgError() işlevini çağırmalıdır.

Varsayılan olarak DefaultPrintArgError() işlevine ait bir işaretçidir.

gActiveOptionSets

OptionSet ** gActiveOptionSets = NULL

Şu anda etkin olan ParseArgs() çağrısına iletilen OptionSet listesi

Devam eden bir ParseArgs() çağrısı yoksa bu değer NULL olur.

İşlevler

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

Bağımsız değişken ayrıştırmayla ilgili bir hata mesajı yazdırın.

Bağımsız değişkenlerin ayrıştırılmasından kaynaklanan hata mesajlarını yazdırmak için kullanılan varsayılan işlev.

Ayrıntılar
Parametreler
[in] msg
Yazdırılacak ileti.

Uygulamalar, bu işlevi doğrudan çağırmak yerine PrintArgError işlev işaretçisini kullanarak çağırmalıdır.

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
)

Her bir seçeneği ve seçenek olmayan bağımsız değişkeni işlemek için işleme işlevleri çağırarak komut satırı stilindeki bir grup bağımsız değişkeni ayrıştırır.

ParseArgs(), bir bağımsız değişkenler listesi (argv) alır ve bunları sağlanan seçenek tanımları grubuna göre ayrıştırır. İşlev, hem uzun (opt) hem de kısa (-o) seçeneklerini destekler ve GNU getopt_long(3) işleviyle aynı seçenek söz dizimini uygular.

Ayrıntılar
Parametreler
[in] progName
Bağımsız değişkenlerin ayrıştırıldığı programın veya bağlamın adı. Bu dize, hata mesajlarının ve uyarıların önüne eklemek için kullanılır.
[in] argc
Ayrıştırılacak bağımsız değişken sayısının artı 1.
[in] argv
Ayrıştırılacak bağımsız değişken dizeleri dizisi. Dizi uzunluğu, argc için belirtilen değerden 1 büyük olmalı ve argv[argc], NULL olarak ayarlanmalıdır. Bağımsız değişken ayrıştırma, second dizi öğesiyle (argv[1]) başlar; 0. öğe yok sayılır.
[in] optSets
Yasal seçenekleri tanımlayan OptionSet yapılarına yönelik işaretçilerin listesi. Sağlanan liste NULL değeriyle sonlanmalıdır.
[in] nonOptArgHandler
Seçenek ayrıştırma işlemi tamamlandığında çağrılacak bir işlevin işaretçisi, kalan seçenek olmayan bağımsız değişkenlerle birlikte . İşlev, bağımsız değişken kalıp kalmadığına bakılmaksızın çağrılır. NULL değeri iletilirse ParseArgs(), seçenek olmayan bağımsız değişkenler bulunduğu takdirde hata bildirir.
[in] ignoreUnknown
Doğru ise, tanınmayan seçenekleri sessizce yoksayın.
İadeler
Tüm seçenekler ve seçenek olmayan bağımsız değişkenler başarıyla ayrıştırılırsa true; bir seçenek tanınmıyorsa veya işleyici işlevlerinden biri başarısız olduysa (yani false döndürülürse) false.

Seçenek tanımları, ParseArgs()'ye bir OptionSet yapısı (optSets) dizisi olarak aktarılır. Her OptionSet, bir seçenek tanımları dizisi ve bir işleyici işlevi içerir. ParseArgs(), seçenek bağımsız değişkenlerini verilen sırada işler ve tanınan her seçenek için ilgili işleyici işlevini çağırır. Tüm seçenekler ayrıştırıldıktan sonra, kalan bağımsız değişkenleri işlemek için bir kez başka bir seçenek olmayan işleyici işlevi (nonOptArgHandler) çağrılır.

SEÇENEK GÜCÜLER

OptionSet, ilişkilendirilmiş seçeneklerden biriyle karşılaşıldığında çağrılacak bir işleyici işlevinin işaretçisiyle birlikte bir dizi seçenek tanımı içerir. Seçenek kümeleri, her seçeneğin söz dizimini ve amacını açıklayan yardım metni de içerir (aşağıdaki SEÇENEK YARDIM'ına bakın). Seçenek kümeleri, ilgili seçeneklerin yeniden kullanılabilir koleksiyonlarının oluşturulmasına olanak tanıyacak şekilde tasarlanmıştır. Bu sayede, benzer seçenekleri (ör. test uygulamaları) kabul eden birden fazla uygulamanın bakımı için gereken çabayı basitleştirir.

OptionSetsone'u tanımlamak için iki kalıp vardır: OptionSet struct'ın kendisinin bir örneğini statik global olarak veya OptionSetBase alt sınıfı olarak başlatarak kurucu sağlayabilir. İkincisi, seçenek işleme yetkisini alt sınıfa vermek için tamamen sanal bir HandleOption() işlevi kullanır.

OptionSet listeleri, NULL ile sonlandırılmış bir işaretçi dizisi olarak ParseArgs() işlevine aktarılır. 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))
    {
        ...
    }
}

SEÇENEK TANIMLARI

Seçenekler, OptionDef yapısı kullanılarak tanımlanır. Seçenek tanımları, OptionDef öğelerinden oluşan bir dizi olarak düzenlenir. Bu öğelerde her öğe, seçeneğin adı, seçeneği tanımlamak için kullanılan tam sayı kimliği ve seçeneğin bir bağımsız değişkeni bekleyip beklemediğine/izin verip vermediğine ilişkin bilgileri içerir. Seçenek dizisinin sonu, NULL Name alanı ile işaretleniyor. 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 }
};

SEÇENEK KİMLİKLERİ

Seçenek kimlikleri, bunları işleyen koda yönelik seçenekleri tanımlar (OptionHandler işlevi). Seçenek kimlikleri, içinde göründükleri OptionSet'e bağlıdır ve bu nedenle farklı OptionSet'lerde yeniden kullanılabilir (ancak aşağıdaki KISA SEÇENEKLER bölümüne bakın). Numaralandırmaya seçenek kimliklerinin 1000'den başlanması genel kuraldır. Ancak 128'den büyük herhangi bir sayı da kullanılabilir. Takma ad seçenekleri, aynı seçenek kimliği ve farklı seçenek adları kullanılarak oluşturulabilir.

KISA SEÇENEKLER

getopt_long(3) fonksiyonunun aksine ParseArgs(), kısa seçenek karakterleri listesini belirten ayrı bir dize almaz. Bunun yerine, kimlik değeri grafik ASCII karakterleri aralığında olan bir seçenek, o karakterin kısa bir seçenek olarak kullanılmasına izin verir.

ParseArgs(), kısa seçenek karakterlerinin tüm OptionSets genelinde benzersiz olmasını gerektirir. Bu nedenle, çakışma olasılığı yüksek olduğundan programlar arasında paylaşılan OptionSet için kısa seçeneklerin kullanılması önerilmez. Takma ad uzun seçenek adları oluşturulmasına olanak tanımak için kısa seçenek karakterleri tek bir OptionSet içinde yeniden kullanılabilir.

SEÇENEK YARDIMI

Her OptionSet (Seçenek Kümesi) ilişkilendirilmiş seçeneklerin amacını ve söz dizimini açıklayan bir OptionHelp dizesi içerir. Bu dizeler, PrintOptionHelp() işlevi tarafından seçenek kullanım bilgilerini oluşturmak amacıyla kullanılır.

Kural olarak, seçenek yardım dizeleri seçeneğin metin biçiminde bir açıklamasının ardından söz dizimi örneğinden oluşur. Seçeneğin kısa sürümü veya takma adı varsa birincil uzun addan önce verilir. Tutarlılık için söz dizimi satırlarına 2 boşluk, açıklama satırları ise 7 boşlukla girintilendirilir. Sonuncusu da dahil olmak üzere her seçenek açıklamasının ardından tek bir boş satır gelir.

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

SEÇENEK YARDIM GRUPLARI

OptionSet'ler, yardım çıktısında seçenekleri gruplandırmak için kullanılan bir HelpGroupName dizesi içerir. PrintOptionHelp() işlevi, oluşturulan kullanım çıktısında bölüm başlığı olarak HelpGroupName öğesini kullanır. Birden çok OptionSet aynı HelpGroupName değerine sahipse PrintOptionHelp(), farklı OptionSet'lere ilişkin seçenek yardımını ortak bir bölüm başlığı altında birlikte yazdırır.

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
)

Adlandırılmış bir ortam değişkeninden bir grup bağımsız değişkeni ayrıştırır.

ParseArgsFromEnvVar(), adlandırılmış bir ortam değişkenini okur ve değeri ayrıştırma için ParseArgsFromString() öğesine iletir. Ortam değişkeni ayarlanmamışsa işlev hiçbir şey yapmaz.

Ayrıntılar
Parametreler
[in] progName
Bağımsız değişkenlerin ayrıştırıldığı programın veya bağlamın adı. Bu dize, hata mesajlarının ve uyarıların önüne eklemek için kullanılır.
[in] varName
Ortam değişkeninin adı.
[in] optSets
Yasal seçenekleri tanımlayan OptionSet yapılarına yönelik işaretçilerin listesi. Sağlanan liste NULL değeriyle sonlanmalıdır.
[in] nonOptArgHandler
Seçenek ayrıştırma işlemi tamamlandığında çağrılacak bir işlevin işaretçisi, kalan seçenek olmayan bağımsız değişkenlerle birlikte . İşlev, bağımsız değişken kalıp kalmadığına bakılmaksızın çağrılır. NULL değeri iletilirse ParseArgs(), seçenek olmayan bağımsız değişkenler bulunduğu takdirde hata bildirir.
[in] ignoreUnknown
Doğru ise, tanınmayan seçenekleri sessizce yoksayın.
İadeler
Tüm seçenekler ve seçenek olmayan bağımsız değişkenler başarıyla ayrıştırılırsa veya belirtilen ortam değişkeni ayarlanmadıysa true; bir seçenek tanınmıyorsa, işleyici işlevlerinden biri başarısız olduysa (ör. "yanlış" döndürdüyse) veya dahili bir hata oluştuysa false.

ParseArgsFromEnvVar

bool ParseArgsFromEnvVar(
  const char *progName,
  const char *varName,
  OptionSet *optSets[]
)

ParseArgsFromEnvVar

bool ParseArgsFromEnvVar(
  const char *progName,
  const char *varName,
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler
)

ParseArgsFromString

bool ParseArgsFromString(
  const char *progName,
  const char *argStr,
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler,
  bool ignoreUnknown
)

Belirli bir dizeden bir grup bağımsız değişkeni ayrıştırır.

ParseArgsFromString(), belirli bir dizeyi (argStr) bir bağımsız değişken grubuna böler ve ParseArgs() işlevini kullanarak bağımsız değişkenleri ayrıştırır.

Ayrıntılar
Parametreler
[in] progName
Bağımsız değişkenlerin ayrıştırıldığı programın veya bağlamın adı. Bu dize, hata mesajlarının ve uyarıların önüne eklemek için kullanılır.
[in] argStr
Ayrıştırılacak seçenekleri ve bağımsız değişkenleri içeren bir dize.
[in] optSets
Yasal seçenekleri tanımlayan OptionSet yapılarına yönelik işaretçilerin listesi. Sağlanan liste NULL değeriyle sonlanmalıdır.
[in] nonOptArgHandler
Seçenek ayrıştırma işlemi tamamlandığında çağrılacak bir işlevin işaretçisi, kalan seçenek olmayan bağımsız değişkenlerle birlikte . İşlev, bağımsız değişken kalıp kalmadığına bakılmaksızın çağrılır. NULL değeri iletilirse ParseArgs(), seçenek olmayan bağımsız değişkenler bulunduğu takdirde hata bildirir.
[in] ignoreUnknown
Doğru ise, tanınmayan seçenekleri sessizce yoksayın.
İadeler
Tüm seçenekler ve seçenek olmayan bağımsız değişkenler başarıyla ayrıştırılırsa true; bir seçenek tanınmıyorsa, işleyici işlevlerinden biri başarısız olduysa (ör. yanlış döndürdüyse) veya dahili bir hata oluştuysa false.

Giriş dizelerinin söz dizimi, unix kabuk komutu söz dizimine benzer ancak basitleştirilmiş bir tırnak şemasına sahiptir. Özellikle:

  • Boşluklar tırnak içine alınmadığı veya atlanmadığı sürece, bağımsız değişkenler boşlukla ayrılır.
  • Ters eğik çizgi, sonraki karakterin çıkışını yaparak normal bir karakter olarak değerlendirilmesine neden olur. Ters eğik çizginin kendisi kaldırılır.
  • Tek veya çift tırnak işareti, tırnak içine alınmış alt dizelerin başlangıcı/bitişidir. Bir alt dize içinde tek özel karakter, sonraki karakterden çıkış yapan ters eğik çizgi ve buna karşılık gelen bitiş tırnak işaretidir. Başlangıç/bitiş tırnak karakterleri atıldı.

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
)

Bir dizeyi boole değeri olarak ayrıştırır.

Bu işlev şu giriş değerlerini kabul eder (büyük/küçük harfe duyarlı değil): "true", "yes", "t", "y", "1", "false", "no", "f", "n", "0".

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak değeri temsil eden, NULL ile sonlandırılmış bir C dizesine giden işaretçi.
[out] output
Ayrıştırılan değerin başarılı olduğunda saklanacağı bir Bool depolama referansı.
İadeler
başarıda doğru, başarısız olduğunda yanlış değerini alır.

ParseFabricId

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

Weave kumaş kimliğini metin biçiminde ayrıştırın.

ParseFabricId() işlevi, başında "0x" olan veya olmayan onaltılık biçimde verilen 64 bitlik yapı kimliğini kabul eder.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak yapı kimliğini içeren NULL sona ermiş C dizesine yönelik işaretçi.
[out] output
Ayrıştırılmış değerin başarılı olduğunda saklanacağı bir uint64_t lvalue referansı.
[in] allowReserved
Doğru ise ayrılmış aralıktaki kumaş kimliklerinin ayrıştırılmasına izin verin.
İadeler
Değer başarıyla ayrıştırılırsa true (doğru), değilse false (yanlış) değerine ayarlanır.

ParseHexString

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

Onaltılık biçimde verilen bayt dizesini ayrıştırır.

ParseHexString(), girişin onaltılık rakam çifti (büyük veya küçük harf) biçiminde olmasını bekler. Onaltılık çiftler isteğe bağlı olarak şu karakterlerden herhangi biriyle ayrılabilir: iki nokta, noktalı virgül, virgül, nokta veya kısa çizgi. Ayrıca, giriş dizesinin herhangi bir yerinde bulunan boşluk karakterleri yok sayılır.

Ayrıntılar
Parametreler
[in] hexStr
Ayrıştırılacak dizeye işaret eden bir işaretçi.
[in] strLen
hexStr cinsinden ayrıştırılacak karakter sayısı.
[in] outBuf
Ayrıştırma baytlarının depolanacağı bir arabelleğin işaretçisi.
[in] outBufSize
outBuf olarak işaretlenen arabelleğin boyutu.
[out] outDataLen
Ayrıştırılan toplam bayt sayısını alacak bir tam sayıya başvuru. outBuf'ın verilen bayt sayısını tutacak kadar büyük olmaması durumunda outDataLen, UINT32_MAX olarak ayarlanacaktır.
İadeler
Değer başarıyla ayrıştırılırsa "true" (doğru), giriş verileri bozuksa veya outBuf çok küçükse "false" olur.

ParseIPAddress

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

IP adresini metin biçiminde ayrıştırır.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak adresi içeren, NULL ile sonlandırılmış bir C dizesinin işaretçisi.
[out] output
Ayrıştırılan değerin başarılı bir şekilde depolanacağı bir IPAddress nesnesine başvuru.
İadeler
Değer başarıyla ayrıştırılırsa true (doğru), değilse false (yanlış) değerine ayarlanır.

ParseInt

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

Bir dizeyi ayrıştırıp temel parametreye uygun yorumlamayı uygulayarak 64 bitlik imzasız tam sayıya dönüştürmeye çalışın.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak tam sayıyı temsil eden NULL ile sonlandırılmış bir C dizesine yönelik işaretçi.
[out] output
Ayrıştırılan değerin başarılı bir şekilde depolanacağı 64 bitlik imzalanmamış bir tam sayı için depolama referansı.
[in] base
Dizenin yorumlanması ve ayrıştırılması gereken taban. 0 veya 16 ise dize on altılı olabilir ve önünde "0x" olabilir. Aksi takdirde, başında 0 olduğu ve 8'in ima edildiği durumlar dışında 0, 10 olarak ima edilir.
İadeler
başarıda doğru, başarısız olduğunda yanlış değerini alır.

ParseInt

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

Bir dizeyi ayrıştırır ve temel parametreye uygun yorumlamayı uygulayarak 32 bitlik imzasız tam sayıya dönüştürmeye çalışın.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak tam sayıyı temsil eden NULL ile sonlandırılmış bir C dizesine yönelik işaretçi.
[out] output
Ayrıştırılan değerin başarılı bir şekilde depolanacağı 32 bitlik imzalanmamış bir tam sayı için depolama referansı.
[in] base
Dizenin yorumlanması ve ayrıştırılması gereken taban. 0 veya 16 ise dize on altılı olabilir ve önünde "0x" olabilir. Aksi takdirde, başında 0 olduğu ve 8'in ima edildiği durumlar dışında 0, 10 olarak ima edilir.
İadeler
başarıda doğru, başarısız olduğunda yanlış değerini alır.

ParseInt

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

Bir dizeyi ayrıştırır ve temel parametreye göre uygun yorumu uygulayarak 32 bit imzalı tam sayıya dönüştürmeyi deneyin.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak tam sayıyı temsil eden NULL ile sonlandırılmış bir C dizesine yönelik işaretçi.
[out] output
Ayrıştırılan değerin başarılı bir şekilde depolanacağı 32 bit imzalı tam sayı depolama alanı referansı.
[in] base
Dizenin yorumlanması ve ayrıştırılması gereken taban. 0 veya 16 ise dize on altılı olabilir ve önünde "0x" olabilir. Aksi takdirde, başında 0 olduğu ve 8'in ima edildiği durumlar dışında 0, 10 olarak ima edilir.
İadeler
başarıda doğru, başarısız olduğunda yanlış değerini alır.

ParseInt

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

Ondalık değer olarak yorumlanan bir dizeyi 64 bitlik imzasız tam sayıya dönüştürme ve temel parametreye göre uygun yorumlamayı uygulayarak dönüştürmeyi deneyin.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak tam sayıyı temsil eden NULL ile sonlandırılmış bir C dizesine yönelik işaretçi.
[out] output
Ayrıştırılan değerin başarılı bir şekilde depolanacağı 64 bitlik imzalanmamış bir tam sayı için depolama referansı.
İadeler
başarıda doğru, başarısız olduğunda yanlış değerini alır.

ParseInt

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

Ondalık değer olarak yorumlanan bir dizeyi 32 bitlik imzasız tam sayıya dönüştürme ve temel parametreye göre uygun yorumlamayı uygulayarak dönüştürmeyi deneyin.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak tam sayıyı temsil eden NULL ile sonlandırılmış bir C dizesine yönelik işaretçi.
[out] output
Ayrıştırılan değerin başarılı bir şekilde depolanacağı 32 bitlik imzalanmamış bir tam sayı için depolama referansı.
İadeler
başarıda doğru, başarısız olduğunda yanlış değerini alır.

ParseInt

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

Ondalık değer olarak yorumlanan bir dizeyi 32 bitlik işaretli bir tam sayıya ayrıştırıp dönüştürmeye çalışın. Bu işlemi, temel parametreye göre uygun şekilde yorumlayın.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak tam sayıyı temsil eden NULL ile sonlandırılmış bir C dizesine yönelik işaretçi.
[out] output
Ayrıştırılan değerin başarılı bir şekilde depolanacağı 32 bit imzalı tam sayı depolama alanı referansı.
İadeler
başarıda doğru, başarısız olduğunda yanlış değerini alır.

ParseInt

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

Ondalık değer olarak yorumlanan bir dizeyi 16 bitlik imzasız tam sayıya dönüştürüp temel parametreye göre uygun yorumlamayı uygulayarak dönüştürmeyi deneyin.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak tam sayıyı temsil eden NULL ile sonlandırılmış bir C dizesine yönelik işaretçi.
[out] output
Ayrıştırılan değerin başarılı bir şekilde saklanacağı 16 bitlik imzalanmamış bir tam sayı için depolama referansı.
İadeler
başarıda doğru, başarısız olduğunda yanlış değerini alır.

ParseInt

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

Ondalık değer olarak yorumlanan bir dizeyi 16 bitlik işaretli bir tam sayıya ayrıştırma ve dönüştürmeyi deneyerek temel parametreye uygun açıklamayı uygular.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak tam sayıyı temsil eden NULL ile sonlandırılmış bir C dizesine yönelik işaretçi.
[out] output
Ayrıştırılan değerin başarılı bir şekilde saklanacağı 16 bit imzalı tam sayı için depolama başvurusu.
İadeler
başarıda doğru, başarısız olduğunda yanlış değerini alır.

ParseInt

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

Ondalık değer olarak yorumlanan bir dizeyi 8 bitlik imzalanmamış bir tam sayıya, temel parametreye göre uygun yorumlamayı uygulayarak ayrıştırmaya ve dönüştürmeye çalışın.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak tam sayıyı temsil eden NULL ile sonlandırılmış bir C dizesine yönelik işaretçi.
[out] output
Ayrıştırılan değerin başarılı bir şekilde depolanacağı 8 bitlik imzalanmamış bir tam sayı için depolama referansı.
İadeler
başarıda doğru, başarısız olduğunda yanlış değerini alır.

ParseNodeId

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

Metin biçiminde bir Weave düğüm kimliğini ayrıştırır.

ParseNodeId() işlevi, onaltılık biçimde verilen 64 bit düğüm kimliğini (başta "0x" olan veya olmayan) veya Herhangi bir düğüm kimliğini (0xFFFFFFFFFFFFFFFF) ifade eden "herhangi biri" ya da "tümü" kelimelerini kabul eder.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak düğüm kimliğini içeren NULL sona ermiş C dizesinin işaretçisi.
[out] output
Ayrıştırılmış değerin başarılı olduğunda saklanacağı bir uint64_t lvalue referansı.
İadeler
Değer başarıyla ayrıştırılırsa true (doğru), değilse false (yanlış) değerine ayarlanır.

ParseSubnetId

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

Bir dizeyi onaltılık olarak yorumlayarak ayrıştırıp 16 bitlik imzasız alt ağ kimliğine dönüştürmeyi deneyin.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak onaltılık olarak biçimlendirilmiş alt ağ kimliğini temsil eden, NULL ile sonlandırılmış bir C dizesine giden işaretçi.
[in,out] subnetId
Ayrıştırılmış alt ağ kimliği değerinin başarılı bir şekilde depolanacağı 16 bitlik imzalanmamış bir tam sayı için depolama referansı.
İadeler
başarıda doğru, başarısız olduğunda yanlış değerini alır.

PrintOptionHelp

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

Bir akış için belirtilen seçenek listesi için yardım metnini yazdırın.

Ayrıntılar
Parametreler
[in] optSets
Yazdırılacak yardım metnini içeren OptionSet yapılarına yönelik işaretçilerin listesi.
[in] s
Yardım metninin yazdırılması gereken FILE akışı.

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
)