closuresgetopt_long(optarg.h)中的缩写?

是否可以closuresgetopt_long()缩写? 从手册页:

如果缩写是唯一的,或者是>一些定义的选项的精确匹配,则长选项名称可以缩写。

我想这样做,因为我收到的一段代码的规范需要标志的完全匹配,并且有很多标志。

Codeape,

看起来没有办法来禁用缩写功能。 你并不是唯一希望得到这个功能的人。 参见: http : //sourceware.org/bugzilla/show_bug.cgi?id = 6863

不幸的是,似乎glibc开发人员不希望这个选项,因为上面链接的错误报告是用“WONTFIX”解决的。 你可能在这里运气不好: – \

如果使用argp_parse()而不是getopt()(高度推荐,BTW),则可以访问用户输入的确切标志

 state-> argv [state-> next  -  2]

这是一个黑客,但应该工作。

这不是完美的解决方案,但你可以在调用getopt_long()(通常在switch中)之后检查用户给出的确切参数:

 if (strcmp(argv[optind-1], "--longoption") == 0) 

optind指出你需要处理的下一个论点。 因此,您可以使用optind-1访问原始参数。