答案 0 :(得分:3)
getopt
用于实现符合POSIX Utility Syntax Guidelines的程序,其中--
具有特殊含义,即使所有后续参数都具有非选项,即使它们具有表单选项(例如rm -- -f
)删除名为-f
的文件。没有明确的方法来抑制这种行为。在argv[optind-1]
完成后,您可以尝试检查"--"
是否为getopt
,但如果"--"
是带参数的选项的参数,则会产生误报( <{1}},其中-f --
需要一个参数),你可能需要解决这个问题。
如果您真的希望参数处理不符合效用语法指南,那么最好从头开始自己编写。