c - 具有重复选项输入的 getopt_long()/getopt()

标签 c getopt-long

我刚刚了解这两个函数。一直在互联网上搜索以了解它们的用法。发现一个对解析命令行选项输入很重要的东西,但是没有讨论。

在这种情况下,如果输入了重复的选项,两个函数都无能为力。我想知道是否有任何 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/

相关文章:

perl - 您是否应该检查 Getopt::Long::GetOptions 的返回码?

c - 在反转句子中的每个单词时如何考虑空格?

C++ 在初始化器中指定数组索引,如 C

c++ - SendMessage(hwnd, registeredmssghere, 0, 1) 收到但未被发送到的 Hook 线程正确识别!

C:如何一次将一个整数从 parent 传递给 child ?

Perl Getopt::Long - 仅对定义的参数使用子参数

perl - 如何访问选项子中的 Getopt::Long 选项值?

c++ - getopt_long 没有正确处理我的论点

c - 带符号的十六进制字符串到 long int 函数

c - getopt 不解析参数的可选参数