argp库中可选参数工作机制的技术咨询(附示例代码)
argp库中可选参数工作机制的技术咨询(附示例代码)
各位好~最近在使用argp库处理命令行参数时,对可选参数的工作逻辑有点摸不着头脑,特意写了一小段精简代码来复现我的问题场景,想请懂行的大佬帮忙解惑:
#include <stdio.h> #include <argp.h> const char *argp_program_version = "dosome 0.1.0"; const char *argp_program_bug_address = "<ask@me.com>"; static char doc[] = "Do something"; static char args_doc[] = ""; static struct argp_option options[] = { {0, 'a', 0, 0, "flag all", 0 }, {0, 'p', 0, OPTION_ARG_OPTIONAL, "print", 0 }, };
简单说下我的需求:-a是个普通的无参标记,这个用起来没啥问题;但-p我想让它支持可选参数——就是既可以单独敲-p触发某个行为,也能写成-p 123这种带参数的形式。我给它加了OPTION_ARG_OPTIONAL属性,但实际运行时的表现和预期有出入,有没有大佬能详细讲讲argp库中可选参数的具体工作机制呀?比如参数的解析顺序、可选参数的识别规则这些~
内容来源于stack exchange
相关产品推荐
相关产品推荐

