例如,
我有以下结构选项:
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)。