如何让getopt在C++中严格进行选项检查

How do I make getopt in C++ do option checking strictly?

本文关键字:行选 选项 检查 getopt C++      更新时间:2023-10-16

我正在使用getopt为用C++编写的CLI解析输入。我有长选项和短选项,我的结构long_options[]元素看起来像这样:

{"verbose", no_argument, NULL, "v"}

一个观察结果是——在命令线上,即使我通过

# mycommand --verb

它仍然接受这一点,并路由到处理详细行为的函数。有什么方法可以让getopt进行严格的选项检查吗?它不应该接受——动词作为——冗长,对吧?

根据手册[1][2]和源[3],无法关闭匹配的缩写长选项。

您的选择是接受这种行为(这种行为已经存在了几十年,不太可能让用户感到惊讶),或者寻找另一个允许关闭长选项缩写的选项解析器库。