2个回答

6

请查看:http://www.gnu.org/software/gnuprologjava/api/gnu/getopt/Getopt.html

还可以使用一种特殊的POSIX参数格式来指定长选项(我强烈不建议这样做)。通过在有效选项字符串中放置“W;”(是的,“W”然后是一个分号)来启用此形式的输入。这会使getopt将“-W”后面的名称视为长选项的名称。例如,“-W outputdir = foo”等同于“--outputdir = foo”。名称可以紧随“-W”之后,如下所示:“-Woutputdir = foo”。选项参数与普通长选项处理方式相同。如果在“-W”后面跟随的字符串不表示有效的长选项,则getopt()返回“W”,并且调用方必须决定要执行什么操作。否则,getopt()将返回如下所述的长选项值。


像 -Wall 这样的 gcc 标志是否遵循这种模式? - Ziqi Fan

3
文档有点不清楚,我的理解是关于 -W 的部分仅适用于 getopt_long()getopt_long_only(),正因为如此。
幸运的是,GNU C 库是开源的。 :)
在内部,这三个函数都通过调用一个工作函数 (_getopt_internal()) 来实现,并且处理 -W 是在该函数内部完成的。然而,如果没有长选项定义可用 (当从 getopt() 调用时将出现这种情况),它将返回 'W'
请参见 此提交记录,或直接单击链接以直接阅读 posix/getopt.c

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接