命令分组中涉及到到几个结构体,下面简单梳理一下它们之间的关系
主结构体,管理着其他结构体
typedef struct OptionParseContext {
OptionGroup global_opts; //全局命令分组
OptionGroupList *groups; //输入和输出的命令分组
int nb_groups; // 一般情况下是2
/* parsing state */
OptionGroup cur_group;
} OptionParseContext;
管理输入源和输出源相关的命令
typedef struct OptionGroupList {
const OptionGroupDef *group_def;
OptionGroup *groups;
int nb_groups;
} OptionGroupList;
关键结构体,