gpt4 book ai didi

c - getopt_long_only : how to prevent the next option as being taken as argument for the previous option with "required_argument" flag

转载 作者:太空宇宙 更新时间:2023-11-04 04:43:04 25 4
gpt4 key购买 nike

例如,

我有如下结构选项:

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)。

最佳答案

我认为最简单的方法是在读入所有内容后简单地检查传递给 -input 的参数是否不等于 -flag。例如,如果您要将所需的输入参数存储在 char *temp,只需检查 strcmp(temp, "-flag") 是否为非零。如果它为零(即,他们输入了 ./program -input -flag),则打印一条错误消息并退出。

关于c - getopt_long_only : how to prevent the next option as being taken as argument for the previous option with "required_argument" flag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24016990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com