を使用するときに、なぜ構造体オプションの配列は、addtionalのダミーエントリーを必要とする例えばオプションの配列です:それはパディングにはのgetopt_long
static struct option const long_options[] =
{
{"help", no_argument, 0, 'h'},
{"version", no_argument, 0, 'v'},
{0, 0, 0, 0}
};
ですか?
を使用するときに、なぜ構造体オプションの配列は、addtionalのダミーエントリーを必要とする例えばオプションの配列です:それはパディングにはのgetopt_long
static struct option const long_options[] =
{
{"help", no_argument, 0, 'h'},
{"version", no_argument, 0, 'v'},
{0, 0, 0, 0}
};
ですか?
ルック:
int getopt_long(int argc, char * const *argv, const char *optstring, const struct option *longopts, int *longindex);
argc
とargv
ペアは、argv[argc] == 0
以来かかわらず、明示的な数で(配列であるどのように多くのエントリが言うする1つの方法を示し、そこにはセンチネルもある)。 optstring
は短い引数を示します。 longindex
は出力パラメータです。これは、ポインタがlongopts
のままであることを意味します。つまり、サポートカウントなしで配列内のエントリ数を知ることができなければなりません(longoptcount
引数はありません)。そのため、配列の終わりは0値。
「センチネル」なので、配列を処理しているコードは、いつ終了するのかを知っています。 getopt_long()
のmanページで