【发布时间】:2012-09-19 00:35:28
【问题描述】:
我怀疑我们是否有两个选项 -a 和 -c 并且选项 -a 需要有一个值,而 -c 没有值
现在如果我给 ->testopt -a -c [testopt 是程序]
然后我的程序将 -c 作为 -a 的值。有没有办法可以确保具有值的选项没有其他选项作为其值?
问题是系统接受 - 一个关键字的值作为我需要阻止的另一个关键字。 例如- testopt -a -c。在这种情况下,-a 有一个强制参数(值),而 -c 没有值 .. 但我的 getopt 将其解释为“-c”是“-a”的值,我如何使用得到选择。
【问题讨论】:
-
请在您为
getopt定义命令行选项的位置添加代码。 -
@JoachimPileborg:当然我会这样做。感谢您的提示。
-
@HonkyTonk:抱歉将无法做到这一点......专有代码......但问题是系统接受 - 一个关键字的值作为我需要阻止的另一个关键字。例如- testopt -a -c。在这种情况下,-a 有一个强制参数(值),而 -c 没有值 .. 但我的 getopt 将其解释为“-c”是“-a”的值,我如何使用获取选择。
-
我想说,如果您用占位符替换任何实际名称,您发送给
getopt以定义选项的字符串是安全的。然后就可以看到你实际做了什么,这会有所帮助,因为我无法理解你的描述。您的“错误”很可能是编码错误... -
@HonkyTonk :这是 getopt 字符串: getopt(argc, argv, "Rc:dfh:I:a:i:l:Lt:np:qrs:vMUC:Ft:V:")