【发布时间】:2023-03-21 14:42:02
【问题描述】:
例如,
我的结构选项如下:
struct option options[] = {
{"input", required_argument, NULL, OPT_INPUT},
{"flag", no_argument, NULL, OPT_FLAG},
}
现在,如果程序的用户错误地省略了 -input 命令后的输入文件名,则传递标志,如下所示:
./program -input -flag
getopt_long_only 将“-flag”视为输入参数,因此将其作为程序中的输入文件,而不是下一个参数(因此在 -input 之后没有传递参数时返回错误)。如何避免这种情况?
我正在使用 GUN/LINUX (2.6.34.3) 和 gcc (GCC) 4.4.2 20091027 (Red Hat 4.4.2-7)。
【问题讨论】:
-
你没有提到你的操作系统。如果您可以使用 GNU 扩展(Linux、Unix),请使用 getopt 并参考this SO question。
标签: c arguments getopt getopt-long