c - C 中与 argp 互斥的选项

标签 c gcc glibc argp

有谁知道如何使用 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/

相关文章:

c - 在代码块内将数组初始化为值 0

c++ - 为什么不鼓励静态链接 glibc?

c++ - 为什么gcc会有一个long long的警告?

linux - 从构建命令中排除动态依赖项?

c - "int a=({10;});"这个表达式用C语言怎么解释?

gcc - 无法建立glibc

python - 在树莓派 python 中找不到 GLIBC_2.33

c - 使用 dos.h 在 TSR 编程中使用 keep(int,int) 函数

c - 在结构指针中访问动态内存

c - C 中表达式 (!array_name[index]) 的含义是什么?