Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C-如何在Argp或Getopt中允许无法识别的选项?_C_Arguments_Getopt_Argp - Fatal编程技术网

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

C-如何在Argp或Getopt中允许无法识别的选项?,c,arguments,getopt,argp,C,Arguments,Getopt,Argp,我正在编写FUSE文件系统,它使用了一些参数。我想将所有未识别的选项传递给FUSE(因为它有自己的选项)。我可以使用argp或getopt来完成吗?现在两个都给我“未知选项”错误。Argp 发件人: ARGP\u无错误 不要将未知选项的错误消息打印到stderr;除非这个 设置标志时,ARGP\u PARSE\u ARGV0被忽略,因为argv[0]被用作 错误消息中的程序名。此标志意味着ARGP\u NO\u EXIT。 这是基于这样一种假设,即错误时无声退出是不好的 行为 Getopt 对于

我正在编写FUSE文件系统,它使用了一些参数。我想将所有未识别的选项传递给FUSE(因为它有自己的选项)。我可以使用
argp
getopt
来完成吗?现在两个都给我“未知选项”错误。

Argp

发件人:

ARGP\u无错误

不要将未知选项的错误消息打印到stderr;除非这个 设置标志时,
ARGP\u PARSE\u ARGV0
被忽略,因为
argv[0]
被用作 错误消息中的程序名。此标志意味着
ARGP\u NO\u EXIT
。 这是基于这样一种假设,即错误时无声退出是不好的 行为

Getopt

对于
getopt
(以及
getopt\u long
getopt\u long\u only
),只需在调用函数之前将全局变量
opterr
设置为0即可。或者,您可以使用一个带有前导
字符的短选项字符串,如
“:o:v”
处理
-o输出文件和
-v
将在
-o
缺少其参数时返回,如果找到选项字符串中不存在的任何选项,
).

解析(并将)未知选项传递给FUSE的困难在于,您不知道这些选项是否带有参数,因此您不知道如何继续准确解析。成束选项也可能存在问题(
ls-ltr
-ltr
中有一组成束的选项;它也可能被写入
ls-l-t-r
,并具有相同的效果)。很大程度上取决于已经生效的规则。