什么是Argtable
Argtable是一款开源的ANSI C library,用来解析GNU样式的命令行选项。它通过定义可用于指定命令行语法的声明式API,从而简化了命令行的分析。argtable将自动生成一致的错误处理逻辑和命令行语法的文本描述,这对于一个健壮的cli程序来说,是非常必要的,但是很繁琐。例如要创建一个如下所示的cli程序:
$> util.exe --help
Usage: util.exe [-v] [--help] [--version] [--level=<n>] [-o myfile] <file> [<file>]...
Demonstrate command-line parsing in argtable3.
--help display this help and exit
--version display version information and exit
--level=<n> foo value
-v, --verbose verbose output
-o myfile output file
<file> input files
你可以使用以下代码段中的argtable实现命令行的分析逻辑:
#include "argtable3.h"
/* global arg_xxx structs */
struct arg_lit *verb, *help, *version;
struct arg_int *level;
struct arg_file *o, *file;
struct