-
#define _GNU_SOURCE
-
-
int getopt_long(int argc, char * const argv[],
-
const char *optstring,
-
const struct option *longopts, int *longindex);
-
-
int getopt_long_only(int argc, char * const argv[],
-
const char *optstring,
-
const struct option *longopts, int *longindex)
getopt_long同getopt一样, 但他还支持 -- 的选项.
getopt_long_only仅支持--, 其optstring应该为空""
长格式为 --opt[{ |=}arg ] 即有参数是需以空格或者=为分割,后带参数的格式.
struct option {
const char *name; //选项名称
int has_arg; //常量 no_argument/0, required_argument/1, optional_argument/2
int *flag; //指定函数返回, 一般情况下设置为NULL. 当 flag==NULL,则返回val. 其他情况返回0, 当选项存在时 flag指向要设置成 val 的指针.
int val; //函数返回,或者要设置到flags指针的值.
};
longopts 的最后一项必须是0填充, 作为所有选项的结束.
longindex != NULL 时, 他指向 longopts 其中的一项.
函数返回同 getopt, 错误是返回 -1, 遇到不认识的返回"?", 否则返回 0 或者val.