gpt4 book ai didi

c++ - Optarg 始终为空

转载 作者:行者123 更新时间:2023-11-27 22:53:21 27 4
gpt4 key购买 nike

Optarg 始终为空。应用程序崩溃。

static const char* const short_options = "a:h:p";
static const struct option long_options[] =
{
{ "address", 1, NULL, 'a' },
{ "help", 0, NULL, 'h' },
{ "port", 1, NULL, 'p' }
};

我尝试将空字符串添加到 long_options,但没有帮助。

static const struct option long_options[] =
{
{ "address", 1, NULL, 'a' },
{ "help", 0, NULL, 'h' },
{ "port", 1, NULL, 'p' },
{0, 0, NULL, 0 }
};

但这并没有帮助。

There是 optarg 使用的例子。我以相同的方式使用 optarg,但得到 null。

do {
nextOption = getopt_long(argc, argv, short_options, long_options, NULL);
switch (nextOption)
{
case 'a':
{
//do something
}
break;
case 'h':
printf(usage_template);
exit(0);
case 'p':
{
long value;
char* end;
value = strtol(optarg, &end, 10);//OPTARG IS NULL
if (*end != '\0')
{
printf(usage_template);
}
port = (uint16_t)htons(value);
}
break;
case '?':
printf(usage_template);
exit(0);
case -1:
break;
default:
exit(0);
}
} while (nextOption != -1);

谁能帮我解决这个问题?

最佳答案

看起来你的“p”选项后面没有跟冒号,所以 getopt 不希望它有参数。

关于c++ - Optarg 始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35403247/

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