【发布时间】:2010-11-30 08:16:38
【问题描述】:
我刚刚了解了这两个功能。一直在网上搜索以了解它们的用法。发现一件事对解析命令行选项输入很重要,但没有讨论。
在这种情况下,如果输入了重复的选项,这两个函数都无法处理它。我想知道是否有任何 lib 函数可用于此。
如果我必须自己处理。我的想法是将短选项收集到一个数组中并在数组中找到相同的选项。
还有更好的方法吗?
【问题讨论】:
标签: c getopt-long
我刚刚了解了这两个功能。一直在网上搜索以了解它们的用法。发现一件事对解析命令行选项输入很重要,但没有讨论。
在这种情况下,如果输入了重复的选项,这两个函数都无法处理它。我想知道是否有任何 lib 函数可用于此。
如果我必须自己处理。我的想法是将短选项收集到一个数组中并在数组中找到相同的选项。
还有更好的方法吗?
【问题讨论】:
标签: c getopt-long
如果你想对重复选项做一些特别的事情,你可以在选项处理代码中管理状态。
-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...
}
【讨论】: