我刚刚了解这两个函数。一直在互联网上搜索以了解它们的用法。发现一个对解析命令行选项输入很重要的东西,但是没有讨论。
在这种情况下,如果输入了重复的选项,两个函数都无能为力。我想知道是否有任何 lib 函数可用于此目的。
如果我必须自己处理。我心目中的方法是将空头期权收集到一个数组中,然后在数组中找到相同的。
有什么更好的方法吗?
最佳答案
如果您想对重复的选项做一些特殊的事情,您可以在选项处理代码中管理状态。
像-v|--verbose
这样的东西可以被重复以获得额外的冗长,而冗长的处理代码是
// initialize
int verbose_level=0
// in the getopt case for -v
verbose_level++;
(对于可以使用应该所有使用的参数重复的选项,加载一个列表或类似的列表)。
如果你不想重复做任何特别的事情,每次都设置值
// in the case
verbose_level = 1;
如果你想检测重复
// in the case
if (verbose_level) {
// handle this case as an error...
}
关于c - 具有重复选项输入的 getopt_long()/getopt(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4309376/