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

C - how to allow unrecognized options in Argp or Getopt?

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

Argp

来自 the "Argp Flags" section of the documentation:

ARGP_NO_ERRS

Don't print error messages for unknown options to stderr; unless this flag is set, ARGP_PARSE_ARGV0 is ignored, as argv[0] is used as the program name in the error messages. This flag implies ARGP_NO_EXIT. This is based on the assumption that silent exiting upon errors is bad behavior.

Getopt

对于getopt(以及getopt_longgetopt_long_only),您只需在调用函数之前将全局变量opterr设置为0。或者,您可以使用带有前导 : 字符的短选项字符串,如 ":o:v" 中那样来处理 -o output-file-v(如果 [= 将返回 : 23=] 缺少它的参数和 ? 如果找到任何不存在于您的选项字符串中的选项)。