1定义:
int getopt_long(int argc, char * const argv[], const char *optstring,
const struct option *longopts,int *longindex);
optstring: 表示短选项字符串。
形式如a: b::cd分别表示程序支持的命令行短选项有-a、-b、-c、-d,冒号含义如下:
(1)只有一个字符,不带冒号——只表示选项, 如-c
(2)一个字符,后接一个冒号——表示选项后面带一个参数,如-a 100
(3)一个字符,后接两个冒号——表示选项后面带一个可选参数,即参数可有可无,
**longopts:**表示长选项结构体。结构如下:
struct option
{
const char *name;
int has_arg;
int *flag;
int val;
};
(1)name:表示选项的名称,比如daemon,dir,out等。
(2)has_arg:表示选项后面是否携带参数。该参数有三个不同值,如下:
a: no_argument(或者是0)时 ——参数后面不跟参数值,eg: --version,–help
b: required_argument(或者是1)时 ——参数输入格式为:–参数 值 或者 --参数=值。eg:–dir=/home
c: optional_argument(或者是2)时 ——参数输入格式只能为:–参数=值
(3)flag:这个参数有两个意思