GetOpt 是一个用于从命令行获取选项的 C 标准库,其可以解析以逗号分隔的字符串或命令行参数列表。
GetOptions 可以处理从标准输入获取参数、从命令行参数传递参数等多种场景,例如:
void print_options(int argc, char**argv)
{
int o;
while ((o = getopt_long(argc, argv, "ab:",
getopt_long_only, NULL)) != -1) {
switch (o) {
case 'a': // 指定选项
printf("Option a specified\n");
break;
case 'b': // 指定选项
printf("Option b specified\n");
break;
case 'c': // 指定选项
printf("Option -c specified\n");
break;
case 'd': // 指定选项
printf("Option d specified\n");
break;
default: // 无匹配选项
printf("Unknown option: %c\n", o);
}
}
}
以上代码中,print_options
函数会根据 getopt 从命令行参数列表中获取指定选项并输出执行结果,例如:
$ gcc -abc
上述命令中,a
选项由 -a
提供,其他选项由 -bc
提供, getopt 将解析命令行参数,并获取相应的选项,调用 print_options
函数输出解析结果。
GetOptions 可通过传入参数 getopt_long_only
来指定在解析过程中是否采用短参数的方式,即只将参数解析为单个短选项和选项组,并利用 optind
参数来指定下一个要进行解析的参数。
领取专属 10元无门槛券
手把手带您无忧上云