たとえば、オプション配列は次のとおりです。
static struct option const long_options[] =
{
{"help", no_argument, 0, 'h'},
{"version", no_argument, 0, 'v'},
{0, 0, 0, 0}
};
パディング用ですか?
たとえば、オプション配列は次のとおりです。
static struct option const long_options[] =
{
{"help", no_argument, 0, 'h'},
{"version", no_argument, 0, 'v'},
{0, 0, 0, 0}
};
パディング用ですか?
のマニュアルページを見てくださいgetopt_long()
:
int getopt_long(int argc, char * const *argv, const char *optstring, const struct option *longopts, int *longindex);
argc
とのargv
ペアは、配列内にいくつのエントリがあるかを示す 1 つの方法を示しています (明示的なカウントによって、ただしargv[argc] == 0
、そこにはセンチネルもあります)。はoptstring
短い引数を示します。これlongindex
は出力パラメータです。これはポインターのみを残しますlongopts
。これは、関数が、サポートするカウントなしで (引数がない) 配列内にいくつのエントリーがあるかを伝えることができなければならないことを意味しますlongoptcount
。そのため、配列の最後はすべての値ゼロ (センチネル値) でマークされます。
これは「センチネル」であるため、配列を処理するコードは、配列がいつ終了したかを認識します。