C - 如何在 Argp 或 Getopt 中允许无法识别的选项?
C - how to allow unrecognized options in Argp or Getopt?
我正在编写使用一些参数的 FUSE 文件系统。我想将所有无法识别的选项传递给 FUSE(因为它有自己的选项)。我可以使用 argp
或 getopt
来做到这一点吗?现在都给我 "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_long
和getopt_long_only
),您只需在调用函数之前将全局变量opterr
设置为0。或者,您可以使用带有前导 :
字符的短选项字符串,如 ":o:v"
中那样来处理 -o output-file
和 -v
(如果 [= 将返回 :
23=] 缺少它的参数和 ?
如果找到任何不存在于您的选项字符串中的选项)。
我正在编写使用一些参数的 FUSE 文件系统。我想将所有无法识别的选项传递给 FUSE(因为它有自己的选项)。我可以使用 argp
或 getopt
来做到这一点吗?现在都给我 "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, asargv[0]
is used as the program name in the error messages. This flag impliesARGP_NO_EXIT
. This is based on the assumption that silent exiting upon errors is bad behavior.
Getopt
对于getopt
(以及getopt_long
和getopt_long_only
),您只需在调用函数之前将全局变量opterr
设置为0。或者,您可以使用带有前导 :
字符的短选项字符串,如 ":o:v"
中那样来处理 -o output-file
和 -v
(如果 [= 将返回 :
23=] 缺少它的参数和 ?
如果找到任何不存在于您的选项字符串中的选项)。