有谁知道如何使用 argp 指定互斥选项在C
中?有什么技巧可以使用吗?
编辑
什么是互斥选项?
假设您有一些命令行实用程序
。您输入utility --help
,输出如下所示
utility [-a|-b]
选项 -a
和 -b
是互斥的,因为不能同时指定它们,即指定 -a
会排除使用 -b
。 -b
也是如此。如果使用它,则无法指定-a
。换句话说,只有以下情况是可能的:
实用程序-a
或实用程序-b
。
来自argp文档似乎无法指定这种选项。那么问题是人们使用什么技巧来指定这种选项?我确信在某人的经历中不止一次出现过这种需要。
最佳答案
具有两个互斥选项 -a
和 -b
的程序通常不会阻止用户在命令行上指定这两个选项。
相反,程序会解析-a
,然后设置一些内部变量,可能是opt_ab = 1
。当稍后解析 -b
时,该变量将被设置为 opt_ab = 0
。这将是命令行上最后一个生效的选项。
绝大多数命令行工具都是这样做的。例如,您有:
$ ls -1 -C
对比
$ ls -C -1
关于c - C 中与 argp 互斥的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38385326/