【问题标题】:getopt_long()/getopt() with duplicated option input带有重复选项输入的 getopt_long()/getopt()
【发布时间】:2010-11-30 08:16:38
【问题描述】:

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

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

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

还有更好的方法吗?

【问题讨论】:

    标签: c getopt-long


    【解决方案1】:

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

    -v|--verbose 之类的内容可以重复以增加冗长性,并且冗长处理代码是

    // initialize
    int verbose_level=0
    
    // in the getopt case for -v
      verbose_level++;
    

    (对于可以使用参数重复的选项,应该使用 all,加载一个列表或类似的)。

    如果您不想重复做任何特别的事情,只需每次设置值

      // in the case
      verbose_level = 1;
    

    如果你想检测重复

      // in the case
      if (verbose_level) {
       // handle this case as an error...
    }
    

    【讨论】:

    • 我的意思是如果输入这样的命令:> Appexec.exe --same-option --same-option。所以在这种情况下,选项处理应该向用户显示错误信息并退出。我想没有这样的 lib API 来处理这种情况。必须自己做。
    猜你喜欢
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2019-07-29
    • 2014-03-22
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多