问题标签 [argp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5307 浏览

c - argp 和 getopt 有什么区别?

我认为标题是不言自明的。我正在制作一个程序,我想知道我应该使用这两个程序以及为什么。

0 投票
2 回答
1457 浏览

c - C中与argp互斥的选项

有谁知道如何用argp in指定互斥选项C?有什么技巧可以使用吗?

编辑

什么是互斥选项?

假设您有一些命令行utility。你输入utility --help,输出看起来像这样

选项-a-b是互斥的,因为不能一起指定它们,即指定-a排除使用-b. 对于-b. 如果使用它,则无法指定-a。换句话说,只有以下可能:

utility -autility -b

argp文档看来,似乎不可能指定这种选项。所以问题是人们使用什么技巧来指定这种选项?我敢肯定,在某人的经历中不止一次需要这样做。

0 投票
0 回答
250 浏览

c++ - 如何使用 argp 更改 --usage 输出?

我用配置文件解析器和 cli 选项构建了一个程序。

我的目标是有这个优先顺序:

  1. CLI 选项配置
  2. 强制配置文件
  3. 硬编码的默认配置

在使用 argp 解析我的 CLI 参数时,我需要先读取配置文件的路径(这不是一个选项),然后是其他 CLI 选项来覆盖配置文件设置。

ARGP_IN_ORDER如 glibc argp 文档中所述,除非您使用该标志,否则首先读取选项然后读取非选项参数。在这种情况下,参数是从头到尾读取的(选项与否)。

在这种情况下,我的第一个强制参数是我的配置文件的路径。除了使用输出外,所有行为都按预期运行。

我有这个 :

我需要这个 :

有没有办法在 Usage 输出中首先放置非可选参数?

0 投票
0 回答
114 浏览

c++ - C++:跨多个文件的 argp 和全局变量

Argp使用全局变量const char * argp_program_versionconst char * argp_program_bug_address. 但是,如果源被拆分为多个文件,那么如何设置这些变量就完全不明显了。全局设置它们(在main.cppparser.cpp中,在 中定义parser.h)似乎根本不起作用。

我应该如何设置这些变量以便 argp 知道它们?

0 投票
1 回答
321 浏览

c - 如何接受字符或字符串作为输入

在阅读了关于 argp 的著名 pdf 之后,我想用它做点什么,但我遇到了问题,在这个例子中:

-d 接受 int 类型的参数,但是如果我想获取 char 或 char 数组作为参数呢?pdf 不包括文档。

我开始学习 C,我对它有基本的了解,我更熟悉其他语言,所以要了解更多关于它的信息,我想存档,但我不明白如何让它接受一个字符大批。

将 arg 与 char 进行比较时不起作用的代码:

提前致谢。

0 投票
2 回答
859 浏览

c - GNU argp:如何解析只有长名称的选项?

我想argp在我的 C 程序中使用来解析命令行选项。

一个要求是选项没有短名称(如-f bar),而只有长名称(如--foo=bar)。

到目前为止,我的方法是设置结构的key字段以使其不显示短名称。argp_option0

我已经详细查看了提供的示例argp.h但我找不到解析选项的方法,该选项在提供给的解析器函数中只有一个长名称argp

我确实发现,理论上,在我可以使用的解析器中

查找长选项的(例如,当使用 , 调用时--foo=barbar将在此处打印)。但是,这似乎不是正确的方法,因为我没有看到一种简单的方法来实际判断该值属于哪个选项。这也显示了实际的命令行参数(不是选项值)。

我会感谢有关我需要查看的任何提示。干杯。

0 投票
1 回答
564 浏览

c - C - 如何在 Argp 或 Getopt 中允许无法识别的选项?

我正在编写使用一些参数的 FUSE 文件系统。我想将所有无法识别的选项传递给 FUSE(因为它有自己的选项)。我可以使用argpor来做到这一点getopt吗?现在两者都给我“未知选项”错误。

0 投票
0 回答
167 浏览

argp - 如何使 argp 忽略未知参数

是否可以让 argp 忽略未知参数?
我尝试使用 ARGP_NO_ERRS,但除了错误以及禁用帮助的打印输出这一事实之外,第一个未知参数会中断解析。
例如,如果我的参数是 -a,而命令行是

-a 参数永远不会被解析,因为解析在 -c 处停止

0 投票
1 回答
1502 浏览

c - argp:如何将 argp_state 传递给 argp_usage、argp_error 等...?

在 c++ 中使用 argp 似乎缺少 python 的 argparse 处理得相当好的互斥。在尝试模仿相同的行为时,我在这里注意到了一个问题。如何将 argp_state 传递给 main 中的 argp_usage(或其他 argp 辅助函数)?否则它似乎无法访问。我应该在 argp parse_opt 函数调用中使用它吗?不太清楚,有需要的请帮忙。在 python 中,如果使用了两个互斥选项,argsparse 会显示以下内容:

在 glibc 的 argp 中,你不能这样做,你必须想出自己的方式。以下示例代码可以运行和测试。它表明当我想显示用法和一些错误消息以及用法(接近尾声)时,我无法让 argp_state 传递 argp_usage() 。如果您知道如何正确实施,请修复它。

0 投票
2 回答
943 浏览

c - 带/不带选项的 getopt 用法

我正在编写一个使用*argv[]参数的简单代码。我想知道我是否可以将getopt()函数用于以下意图。

该程序既可以仅采用PATH(例如/usr/tmp),也-a可以采用除PATH. 可以getopt()用于这种状态吗?如果可以,怎么做?