3

我刚刚了解了这两个功能。一直在网上搜索以了解它们的用法。发现一件事对解析命令行选项输入非常重要,但没有讨论。

在这种情况下,如果输入了重复的选项,这两个函数都无法处理它。我想知道是否有任何 lib 函数可用于此。

如果我必须自己处理。我认为的方法是将短选项收集到一个数组中并在数组中找到相同的选项。

有什么更好的方法吗?

4

1 回答 1

2

如果你想对重复选项做一些特别的事情,可以在选项处理代码中管理状态。

-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...
}
于 2010-11-30T00:16:38.600 回答