我需要一种方式来说明用户是否输入-f <optarg>
我需要-n <optarg>
和-o <optarg>
,但如果用户未指定-f
,-n -o
是没有必要。我必须做一些类似的条件,基于额外的争论解析许多情况。是否可以使用getopt?任何人都可以帮我这样做吗?
我不想在解析后检查每个变量。我希望是否有任何正则表达式,我可以在getopt字符串中使用它来完成我的工作。
答案 0 :(得分:0)
大概在你的getopt
循环中,你可以根据指定的标志设置不同的变量。循环完成后,您可以轻松检查这些变量的状态。例如:
const char* someVariable = NULL;
const char* someOtherVariable = NULL;
while ((opt = getopt(argc, arv, "f:n:")) != -1)
{
switch (opt)
{
case 'f':
someVariable = optarg;
break;
case 'n':
someOtherVariable = optarg;
break;
}
}
if (someVariable != NULL)
{
if (someOtherVariable == NULL)
{
fputs("-f specified without -n", stderr);
exit(1);
}
}