c语言中的struct-option结构

C语言知识拾遗,struct option 结构体。

struct option 指明了一个长参数,在一些控制台程序中经常用到,需要指明不同的参数来运行程序。如开源软件webbench运行./webbench -h后会出现一些可选项,指定不同的参数,程序会做出不同的相应。

1
2
3
4
5
6
struct  {
const char *name;
int has_arg;
int *flag;
int val;
}

参数说明:
name 表示长参数的名称;
has_arg 表示参数名称后面是否需要跟着参数,no_argument(0)不需要,required_argument(1)一定要跟个参数,optional_argument(2)可以有也可以没有;
flag 决定了getopt_long的返回值,如果为NULL,返回val字段的数值;如果不为NULL,则会使其指向的内容变为val中的值,并且返回0;若未发现长选项,那么指向不变;
val 指定的默认值。

长命令参数的解析

1
2
3
int getopt_long(int argc, char * const argv[],
const char *optstring,
const struct option *longopts, int *longindex);

参数说明:
argcargv 是命令行参数;
optstring 选项参数组成的字符串,如果一个字母后面跟着一个冒号如 t:,那么表示这个选项后需要参数;
longopts 是需要的自定义的option结构体;
longindex 指定一个索引指针。

例子

原文:大专栏  c语言中的struct-option结构


猜你喜欢

转载自www.cnblogs.com/wangziqiang123/p/11618347.html
今日推荐